我正在尝试转换一个使用JMockit使用Mockito的测试套件;powermock。
在测试设置中有以下代码片段: new MockUp<Controller>() {
@Mock
public boolean sendMessage(final String string1, final String string2) {
queue.add(string1);
return true;
}
};
我猜这意味着无论何时该方法在测试期间被调用,然后使用这个模拟实现。这是正确的吗?
也有一个等效的MockUp在Mockito或Powermock?
谢谢!
与其直接翻译JMockit代码,不如使用Mockito习惯用法重写测试。
使用mock的单元测试通常遵循以下格式:
- 创建模拟对象(通常在安装中完成,或者使用注释)
- 使用Mockito.when存根任何必要的方法
- 调用正在被测试的代码
- 对被测代码的状态和/或返回值做出任何断言。
- 使用Mockito.verify 验证预期的交互
我不知道MockUp实际上是做什么的,但这看起来像是存根的一部分。如果您仍然需要调用queue.add
,那么您可以在回答中这样做。如果那个队列。add只是用于验证每个调用的string1
,那么您可以在没有队列的情况下完成此操作。