有没有一种简单的方法来模拟这个调用:
objectA.getB().getC();
Run Code Online (Sandbox Code Playgroud)
现在我这样做的方式是:
A mockA = EasyMock.createMock(A.class);
B mockB = EasyMock.createMock(B.class);
C mockC = EasyMock.createMock(C.class);
expect(mockA.getB()).andReturn(mockB);
expect(mockB.getC()).andReturn(mockC);
Run Code Online (Sandbox Code Playgroud)
这有点矫枉过正,因为我只关心获得 mockC。有没有更简单的方法来做到这一点?
不,如果您想替换 ,则不存在 \xe2\x80\x93 A,B并且C在使用模拟的测试中,您需要三个模拟对象。
另一种方法是使用真实A的B类,并且仅用C模拟对象替换。然后你的单元测试将测试
objectA.getB().getC()AB作为一个“单位”在一起。这是否有意义,取决于具体情况。
\n