저는 Mockito 초심자이고 스텁을 만드는 데 문제가 있습니다. 나는 다음과 같은 JUnit 테스트를 만들었습니다다른 클래스에 중첩 된 Mockito, JUnit 및지도
class FieldsWrapper {
private Map<String, IMsgField> fields = new HashMap<String, IMsgField>();
. . .
public Map<String, IMsgField> getFields() {
return fields;
}
}
:
public final class CMsgField implements IMsgField {
private String name;
private Object value;
public CMsgField(String name, Object value) {
this.name = name;
this.value = value;
}
. . .
}
을 다음과 내가 하나 개 더 클래스를 가지고
public interface IMsgField {
public String getName();
public Object getValue();
}
한 클래스는 인터페이스 위에 구현 : 나는 다음과 같은 인터페이스를 가지고 :
@Test
public void test() {
FieldsWrapper fieldsWrapper = mock(FieldsWrapper.class);
stub(fieldsWrapper.getFields()).toReturn(new HashMap<String, IMsgField>());
stub(fieldsWrapper.getFields().get("id_object")).toReturn(new CMsgField("id_object", "100"));
. . .
}
그리고 내가 위의 테스트에서 마지막 줄에 다음과 같은 예외를받은이 테스트를 실행했을 때 :
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
CMsgField cannot be returned by getFields()
getFields() should return Map
...
을 나는 왜이 문제 좀 도와주십시오하지 않습니다. 미리 감사드립니다.
라인'스텁 (fieldsWrapper.getFields는() ("id_object") 얻을.) toReturn (새 CMsgField ("id_object", "100")).'의심스러운. 'fieldsWrapper.getFields()'는 스텁이 아닙니다. 매핑에 필요한'CMsgField'를 추가하면됩니다. 또는지도 자체를 조롱합니다. – talex