【问题标题】:JMockit MockUp class and Mockito/mock equivalentJMockit MockUp 类和 Mockito/mock 等价物
【发布时间】:2014-09-14 11:02:26
【问题描述】:

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

在测试设置中有以下sn-p代码:

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

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

在 Mockito 或 Powermock 中是否也有与 MockUp 等效的功能?

谢谢!

【问题讨论】:

  • 正确,就是这个意思。据我所知,在任何其他模拟 API 中都没有 MockUp 等效项。

标签: java unit-testing mockito jmockit


【解决方案1】:

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

使用 mockito 的单元测试通常遵循这种形式:

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

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

【讨论】:

  • 好的,所以我刚刚注意到这个问题已经 6 岁了。我的错 :-)。无论如何,我还是坚持我的答案。
猜你喜欢
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
相关资源
最近更新 更多