JMockit MockUp 类和 Mockito/mock 等价物

Mat*_*Mat 8 java unit-testing jmockit mockito

我正在尝试将使用 JMockit 的测试套件转换为使用 Mockito 和 powermock。

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

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

我猜这意味着只要在测试期间调用该方法,就使用这个模拟实现。这样对吗?

在 Mockito 或 Powermock 中是否也有相当于 MockUp 的东西?

谢谢!

Dan*_*iel -2

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

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

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

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