我正在使用 Mockito 进行单元测试。我想知道是否可以在 Junit 测试中发送参数化输入参数
例如
@InjectMocks
MockClass mockClass = new MockClass();
@Test
public void mockTestMethod()
{
mockClass.testMethod(stringInput);
// here I want to pass a list of String inputs
// this is possible in Junit through Parameterized.class..
// wondering if its can be done in Mockito
}
原文由 spal 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 JUnit 中, 参数化测试 使用 一个特殊的运行 器来确保测试被多次实例化,因此每个测试方法都会被调用多次。 Mockito 是一个用于编写特定单元测试的工具,因此没有内置的功能可以以不同的 Mockito 期望多次运行相同的测试。
如果您希望更改测试条件,最好的办法是执行以下操作之一:
@Test
方法。请注意,不禁止使用模拟对象作为
@Parameterized
测试参数。如果您正在寻找基于模拟的参数化,您可以这样做,可能会创建模拟并在测试的静态方法中设置期望。关于跑步者的注意事项:此 参数化测试跑步者 与 Mockito 的 MockitoJUnitRunner 冲突:每个测试类只能有一个跑步者。如果您同时使用它们,则需要为您的设置切换到 @Before 和 @After 方法 或 Mockito JUnit4 规则。
例如,从解释更多关于参数化运行器与 JUnit 规则 的不同答案 压缩,并从 JUnit4 参数化测试 文档页面和 MockitoRule 文档页面提升: