我正在尝试使用EasyMock和TestNG编写一些单元测试,但遇到了一个问题。给定以下内容:
void execute(Foo f) {
Bar b = new Bar()
b.setId(123);
f.setBar(b);
}
我将尝试测试以下方式中Bar的Id是否相应设置:
@Test
void test_execute() {
Foo f = EasyMock.createMock(Foo.class);
execute(f);
Bar b = ?; // not sure what to do here
f.setBar(b);
f.expectLastCall();
}
在我的测试中,我不能只调用f.getBar()
并检查它的Id,因为f
是一个模拟对象。有什么想法吗?这是我想要查看EasyMock v2.5添加的andDelegateTo()
和andStubDelegateTo()
的地方吗?
哦,只是为了记录... EasyMock的文档很烂。
equals()
方法所能满足的,或者测试了您在测试中不关心的更多字段,则捕获是更好的选择(尽管这会引出一个问题:为什么 Bar.equals() 不足够)。 - matt b