【发布时间】:2019-04-05 11:46:50
【问题描述】:
我有一个具有build() 函数的builder 类,我正在为它传递一个服务。
我有一个构建器的测试类,它有两个方法
有没有办法用相同的参数测试两次但返回不同的值?
@Before
public void initTest() {
MockitoAnnotations.initMocks(this);
}
@Test
private void test1{
Mockito.when(defaultBuilder.build(service)).thenReturn(createObject());
}
@Test
private void test2(){
Mockito.when(defaultBuilder.build(service)).thenReturn(createDifferentObject());
}
问题是我从第二次测试中得到了createObject() 对象,尽管我期待的是createDifferentObject()。
【问题讨论】:
-
发布一个完整的最小示例来重现该问题。我们必须能够将它复制并粘贴到我们的 IDE 中,然后运行它来重现问题。您发布的内容不是有效的 Java,而且非常不完整。
-
我不确定你在问什么。这些不是测试。这些只是从未调用过的模拟调用。没有断言会发生任何事情。在较新版本的 Mockito 中,这只会引发异常,因为模拟是不必要的。
-
重点是抽象掉所有无用的代码,问题描述得很清楚。将编辑代码。
-
"问题描述得很清楚" 你确定吗?两个不同的人评论说不清楚。将您的问题归结为基本要素固然很好,但您已经走得太远了,以至于没有足够的上下文来解释它。
-
你的 defaultBuilder 是否被注释为@Mock?