0

オブジェクトをパラメーター A として受け取り、別のオブジェクト B のインスタンスを作成し、B のプロパティに A のプロパティを設定するメソッドの単体テストを行っています。次に、コードは、messageSender.send(B) という別のクラスのメソッドを呼び出します。

send() が呼び出されたことを確認する必要があります。次のことを試しましたが、 sendBMessage が異なるタイプの B オブジェクトで呼び出されたと言って失敗します。

messageSender.send(B) が呼び出されたことを確認する方法を知っている人はいますか?

 class MyMailSender{
    MessageSender messageSender;

    void sendBMessage(Object A){
       B b = new B();
       b.setId(A.getId()):

       messageSender.send(B);

    }

class test{
 @Mock
 private MessageSender messageSender;
 @InjectMocks
 MyMailSender myMailSender;

 void testSendB(){
   A a = new A();
   a.setId(100);

   B b = new B();
   b.setId(a.getId());

   myMailSender.sendBMessage(a);

   verify(messageSender).send(b);
}
4

1 に答える 1

2

機能するソリューションを見つけました:

    verify(messageSender).send(any(B.class));
于 2012-07-31T11:08:57.210 に答える