在API文档中提到,在严格模式下,默认情况下启用了检查,而在模拟不好的情况下则不是。我没有得到“订单检查”的确切含义。
答案 0 :(得分:11)
如果你告诉模拟人员希望拨打foo()
,那么期待拨打bar()
,实际通话为bar()
,然后foo()
,严格mock会抱怨,但一个好的模拟不会。这就是订单检查的意思。
答案 1 :(得分:0)
EasyMock.createStrictMock()创建一个模拟,并且还会处理模拟在其操作过程中将要进行的方法调用的顺序。 考虑下面的例子: Click here for complete tutorial.
CREATE TABLE ... text/varchar
EasyMock.createNiceMock():如果多个方法具有相同的功能,我们可以创建NiceMock对象并仅创建1个expect(方法)并可以创建多个assert(method1),assert(method2),...
@Before
public void setUp(){
mathApplication = new MathApplication();
calcService = EasyMock.createStrictMock(CalculatorService.class);
mathApplication.setCalculatorService(calcService);
}
@Test
public void testAddAndSubtract(){
//add the behavior to add numbers
EasyMock.expect(calcService.add(20.0,10.0)).andReturn(30.0);
//subtract the behavior to subtract numbers
EasyMock.expect(calcService.subtract(20.0,10.0)).andReturn(10.0);
//activate the mock
EasyMock.replay(calcService);
//test the subtract functionality
Assert.assertEquals(mathApplication.subtract(20.0, 10.0),10.0,0);
//test the add functionality
Assert.assertEquals(mathApplication.add(20.0, 10.0),30.0,0);
//verify call to calcService is made or not
EasyMock.verify(calcService);
}