Java 编写仅适用于测试类中特定测试的模拟方法

Java 编写仅适用于测试类中特定测试的模拟方法,java,unit-testing,mocking,mockito,Java,Unit Testing,Mocking,Mockito,我有一个测试类,其中我有大约10个单元测试用例。在这篇文章中,我创建了一个模拟方法,它只在10个测试用例中的2个中有用 public static class MockCreateStudent extends Mockup<CreateStudentDAO>{ @Mock public boolean isFeesPaid(long studentID){ return true; } } 公共静态类MockCreateStudent扩展了

我有一个测试类,其中我有大约10个单元测试用例。在这篇文章中,我创建了一个模拟方法,它只在10个测试用例中的2个中有用

public static class MockCreateStudent extends Mockup<CreateStudentDAO>{
    @Mock
    public boolean isFeesPaid(long studentID){
        return true;
    }
}
公共静态类MockCreateStudent扩展了Mockup{
@嘲弄
公共布尔值isFeesPaid(长studentID){
返回true;
}
}
因此,从技术上讲,我希望对8个测试用例执行
isFeesPaid()
方法,并对其中2个测试用例进行模拟


有什么方法可以做到这一点吗?

在这种情况下,使用间谍而不是模拟。对于大多数情况,它将调用协作者的实际实现,对于这两种情况,您将在调用SUT之前在
//given
部分中使用
given().willReturn()
存根


下面是关于spy注释的更多信息,我建议您使用:

听起来不太正确-为什么您只在某些情况下嘲笑合作者?@jonrsharpe:我刚才提到了我实际问题陈述的简化版本。实际上,isFeesPaid()方法需要4个参数,填充它们是一项繁琐的任务。对于我所说的两个测试用例,这种方法并不重要。所以我试着通过嘲弄它来简化它。有道理吗?