我正在使用Junit参数化方法进行单元测试。
最初,我遵循普通的参数化方法来测试我的工作流程1。 但后来我发现了这篇文档2,它提供了一个更好、更简洁的方法来使用参数进行测试。然而,我无法想出一种方法将模拟对象传递给测试方法。
@TestWith({
"null, mock(B.class),mock(C.class)",
"mock(A.class), null, mock(C.class)",
"mock(A.class), mock(B.class), null"
})
public void test_workflow(final A Aclass,final B Bclass,final C Cclass)
{
assertThat....
}
我遇到了非法参数异常:
java.lang.IllegalArgumentException: 将字符串“mock(B.class)”解释为类B.class时出错 at com.googlecode.zohhak.internal.coercing.CoercingService.coerceParameter(CoercingService.java:58) at com.googlecode.zohhak.internal.coercing.CoercingService.coerceParameters(CoercingService.java:33) at com.googlecode.zohhak.internal.Executor.calculateParameters(Executor.java:28) at com.googlecode.zohhak.internal.junit.ParametrizedFrameworkMethod.invokeExplosively(ParametrizedFrameworkMethod.java:22)
请问有人知道如何将模拟对象作为参数传递给测试方法吗?这将是很大的帮助,我会继续尝试在我的端上找到答案。
mock()
方法所在的类,例如"Mockito.mock(B.class)"
? - Carsten