我有一个方法可以调用同一类中的其他方法,例如:
Class MyClass{
public int methodA(){
...
methodB()
...
}
public int methodB(){
...
}
}
我只想测试methodA()
,那么如何使用EasyMock
隔离methodB()
。
我该死的方法是创建一个 MyClass
的假实例并将其注入(inject)到 methodA()
中,如下所示:
public int methodA(MyClass fake){
...
fake.methodB();
...
}
并期望它出现在我的测试用例中:
MyClass fake = EasyMock.createMock(MyClass.class);
EasyMock.expect(fake.methodB()).andReturn(...);
针对这种情况有没有更好的解决方案?
最佳答案
是的:不要使用 EasyMock,而是使用匿名本地类。示例:
public void testXyz throws Exception() {
MyClass fake = new MyClass() {
public int methodB(){
return 12;
}
};
fake.methodA();
}
关于java - 如何使用 EasyMock 隔离同一类中的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3904517/