gpt4 book ai didi

unit-testing - RhinoMocks : Clear or reset AssertWasCalled()

转载 作者:行者123 更新时间:2023-12-04 05:23:02 24 4
gpt4 key购买 nike

我如何验证在我的测试的“行为”部分中调用了一个模拟,而忽略了在测试的“排列”部分中对模拟的任何调用。

[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());
}

我不想尝试注入(inject)新的模拟或依赖 .Repeat() 因为测试必须知道在设置中调用该方法的次数。

最佳答案

在这些情况下,我使用模拟而不是 stub 和 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();

在这种情况下,期望在安排完成后放在方法上。有时我认为这是它自己的测试风格:Arrange、Expect、Act、Assert

关于unit-testing - RhinoMocks : Clear or reset AssertWasCalled(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com