JMockit MockUp类和Mockito / mock等效

时间:2014-07-23 10:01:30

标签: java unit-testing mockito jmockit

我正在尝试转换使用JMockit的测试套件来使用Mockito& powermock。

在测试设置中,有以下代码片段:

 new MockUp<Controller>() {
     @Mock
     public boolean sendMessage(final String string1, final String string2) {
        queue.add(string1);
        return true;
     }
  };

我猜这意味着无论何时在测试期间调用该方法,都要使用这个模拟的实现。这是对的吗?

Mockito或Powermock还有MockUp吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

与其尝试直接转换JMockit代码,不如使用Mockito惯用法重写测试。

使用模拟的单元测试通常遵循以下形式:

  1. 创建模拟对象(通常在setUp中完成,或带有批注)
  2. 使用Mockito.when存根任何必要的方法
  3. 调用正在测试的代码。
  4. 对要测试的代码的状态和/或返回值进行任何断言。
  5. 使用Mockito.verify验证预期的互动

我不知道MockUp实际做什么,但这看起来像是存根的一部分。如果您仍然需要致电queue.add,则可以在“答案”中进行。如果该queue.add仅用于验证每个呼叫的string1,那么您可以在没有队列的情况下进行操作。