I가 내가 테스트 할 다음과 같은 방법다른 방법과 방법을 비웃음
나는 방법login(s, msgsys, time)
을 조롱 할
public boolean sendMessage(Agent destinationAgent, String message, Supervisor s, MessagingSystem msgsys, String time) throws ParseException {
if(mailbox.getMessages().size() > 25){
return false;
}else{
if(login(s, msgsys, time)){
try {
sentMessage = msgsys.sendMessage(sessionkey, this, destinationAgent, message);
if(sentMessage.equals("OK")) {
return true;
}
return false;
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}
return false;
}
}
.
@Mock
private Supervisor supervisor;
@Mock
private MessagingSystem msgsys;
@Test
public void testSendMessageSuccess() throws ParseException {
String message = "Hey";
Agent destination = new Agent("Alex", "2");
agent.sessionkey = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
when(agent.login(supervisor, msgsys, anyString())).thenReturn(true);
when(msgsys.sendMessage(agent.sessionkey, destination, agent, message)).thenReturn("OK");
boolean result = agent.sendMessage(destination, message, supervisor, msgsys, time);
assertEquals(true, result);
}
그러나, 다음과 같은 오류가 발생 : 다음과 같이 나는이 일을하고
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
Boolean cannot be returned by getLoginKey()
getLoginKey() should return String
방법 getLoginKey()
가 있습니다주세요 - 문자열을 반환하는 방법 login(s, msgsys, time)
내에서 호출을하고, 인터페이스 클래스에 속합니다.
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
agent = new Agent("David", "1");
time = dateFormat.format(new Date());
}
@After
public void teardown(){
agent = null;
}
여기서 '에이전트'는 여기서 인스턴스화됩니까? – Plog
@Plog 설치 방법'@ Before'에서 인스턴스화됩니다. 나는 당신이 볼 수 있도록 질문을 편집했습니다. –