我正在尝试使用 Easymock 测试一个算法,但我偶然发现了该算法的实现细节。谁能给我一条出路?给我一个问题的部分是:
interface A {
B getB ();
}
interface B {
void setX (int x);
void doSomething ();
}
现在在被测算法的某个地方发生了这种情况:
a.getB ().setX (9);
a.getB ().doSomething ();
a.getB ().setX (16);
这会导致意外的方法调用 getB () 因为我的测试只声明了有趣的部分:
B b = EasyMock.createStrictControl ();
b.setX (9);
EasyMock.expectLastCall();
b.doSomething ();
EasyMock.expectLastCall();
我知道这是因为订单已检查。但即使我放置以下行,也没有任何变化。
EasyMock.expect (a.getB ()).andReturn (b).anyTimes ();
实例 a 也是一个 EasyMock 代理。
谁能帮帮我?