私は次のクラスを持っています:
public class Listener{
@Autowired
private Handler handler;
public void receiveMessage(Message<String> message) {
String xmlMessage = message.getPayload().toString();
XStream xstream = new XStream();
xstream.processAnnotations(InfoTO.class);
infoTO = (InfoTO) xstream.fromXML(xmlMessage);
UserDetailTO[] userDetailTO = { new UserDetailTO(infoTO.getUserId(), null) };
handler.sendEmail(userDetailTO);
}
}
私のテスト方法:
@Test
public void testRecieve() {
UserDetailTO[] userDetails={new UserDetailTO("zzzz",null)};
Handler handlerMock=EasyMock.createMock(Handler.class);
handlerMock.sendEmail(aryEq(userDetails));
EasyMock.expectLastCall();
EasyMock.replay(handlerMock);
ReflectionTestUtils.setField(listener, "handler", handlerMock);
String message = "Test Payload";
Message<String> finalMessage = MessageBuilder.withPayload(message).build();
listener.receiveMessage(finalMessage);
}
このテスト クラスを実行すると、予期しないメソッド呼び出しのアサーション エラーが発生します。テストクラスでは、配列に挿入された UserDetailTO インスタンスが Listener クラスで作成されたインスタンスと一致しないため、予想されます。
しかし、その後、この問題を解決するにはどうすればよいでしょうか。