EasyMock:使用@Mock创建的模拟调用命令

时间:2015-09-30 08:21:53

标签: java unit-testing easymock

如果使用@Mock注释创建模拟之间的方法调用顺序,有没有办法验证?

documentation中所述,可以使用模拟控件完成。但是EasyMockRule不公开控制对象。 我查看了EasyMockSupport实现,但还没有办法强制它为所有注入的模拟使用一个控件。 :(

public class Test extends EasyMockSupport {

 @Rule
 public EasyMockRule mocks = new EasyMockRule(this);

 @Mock
 private SomeClass first;

 @Mock
 private OtherClass second;

 @TestSubject
 private UnderTest subject = new UnderTest ();

 @Test
 public void test() {
   expect(first.call());
   expect(second.call());
   ....
   //Verify that calls were in order first.call(), second.call()
 }
}

1 个答案:

答案 0 :(得分:0)

你是对的,这是不可能的。增强可以是允许在@Mock注释中设置控件。你可以请file an issue吗?

在您的情况下,您必须使用相同的IMocksControl手动创建模拟,如文档中所述。