【发布时间】:2015-11-12 11:25:40
【问题描述】:
我正在使用Mockito 来编写我的测试用例。我有一个简单的类,其中包含一个我有兴趣测试的函数countPerson(boolean):
public class School {
//School is a singleton class.
public void countPerson(boolean includeTeacher) {
if (includeTeacher) {
countIncludeTeacher();
return;
}
countOnlyStudents();
}
public void countIncludeTeacher() {...}
public void countOnlyStudents() {...}
}
在我的单元测试中,我想测试countPerson(boolean)函数:
public class SchoolTest{
private School mSchool;
@Before
public void setUp(){
mSchool = School.getInstance();
}
@Test
public void testCountPerson() {
mSchool.countPerson(true);
//How to test/verify countIncludeTeacher() is invoked once?
}
}
如何使用 Mockito 来检查/验证 countIncludeTeacher() 在我的测试用例中被调用一次?
【问题讨论】:
-
@mayooran 在技术上不是重复的,这里的用例是不同的:OP 需要验证在同一个对象上调用了不同的方法。
-
@mayooran,它根本没有重复。请仔细查看我的代码,我不是在验证对另一个对象的方法调用。如果您投了反对票,请撤消反对票。
-
这是因为当你模拟
School类时,即使调用mockSchool.countPerson(true);它也没有执行那个方法,因为你在“模拟”。尝试使用Mockito.spy -
@Valijon 没错,这就是为什么它没有重复,因为它根本没有提到间谍。
标签: java unit-testing mockito