单元测试 - 验证方法调用

时间:2012-07-31 10:59:24

标签: mocking junit4 verify

我正在测试一个方法,该方法将对象作为参数A,创建另一个对象的实例,B并使用A填充B的属性。然后代码在一个名为messageSender.send(B);

的单独类上调用一个方法

我需要验证是否调用了send()。我已尝试过以下内容,但未能说使用不同类型的B对象调用sendBMessage。

有人知道如何验证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);
}

1 个答案:

答案 0 :(得分:2)

找到一个有效的解决方案:

    verify(messageSender).send(any(B.class));