IMocksControl可以创建一个IMockBuilder吗?

问题描述:

我遇到了一个问题,我想用一个IMocksControl来测试多个对象。因为这允许我检查跨越多个对象的函数调用顺序。IMocksControl可以创建一个IMockBuilder吗?

与此同时,我想用一个IMockBuilder创建一个模拟对象,只有少数几个方法被嘲笑。

既然它看起来IMockBuilder不能从IMocksControl创建,我该如何实现我的目标?我看到:public static void checkOrder(Object mock,boolean state)在EasyMock上是静态的,但是我不清楚这是否设置严格检查该模拟对象或使用EasyMock.createMock创建的每个模拟对象。

为什么要检查物体之间的顺序?确切的顺序真的很重要吗?

听起来像你现在正走下我走过的路,幸运地逃脱。这听起来像你在模拟中复制代码并验证发生了什么。这是一种很糟糕的测试方式,因为最终会出现非常脆弱的测试,而这些测试并未明确该方法的最终结果。

请尝试只验证重要的内容,并且对于多个步骤询问第一步是否重要,或者结果如何发生很重要。即

void drive(Person driver, Car car) { 
    driver.press(car.getAccelerator()); 
} 

这不是重要的是getAcceleratordriver.press之前调用。调用getAccelerator并不重要。重要的是司机按下汽车的加速器。所以你只需要验证驱动程序。