Bri*_*Low 5 unit-testing rhino-mocks mocking
如何验证在我的测试的"act"部分中调用mock,忽略在测试的"Arrange"部分中对mock的任何调用.
[Test]
public void ShouldOpenThrottleWhenDrivingHome()
{
var engineMock = MockRepository.GenerateStub<IEngine>();
var car = new Car(engineMock);
car.DriveToGroceryStore(); // this will call engine.OpenThrottle
car.DriveHome();
engine.AssertWasCalled(e => e.OpenThrottle());
}
Run Code Online (Sandbox Code Playgroud)
我宁愿不尝试注入一个新的模拟或依赖.Repeat(),因为测试然后必须知道在设置中调用该方法的次数.
在这些情况下,我使用模拟而不是存根和组合Expect和VerifyAllExpectations:
//Arrange
var engineMock = MockRepository.GenerateMock<IEngine>();
var car = new Car(engineMock);
car.DriveToGroceryStore(); // this will call engine.OpenThrottle
engineMock.Expect(e => e.OpenThrottle());
//Act
car.DriveHome();
//Assert
engineMock.VerifyAllExpectations();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在安排完成之后对期望的方法进行预期.有时我认为这是它自己的测试风格:安排,期待,行动,断言
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |