相关疑难解决方法(0)

使用Moq Verify()方法调用计数时,失败测试的错误消息包含使用Moq的实际方法调用计数

考虑以下内容,我在测试注入依赖项的方法被调用特定次数:

[Fact]
public void WhenBossTalksEmployeeBlinksTwice()
{
    // arrange
    var employee = new Mock<IEmployee>();
    employee.Setup(e => e.Blink());

    var boss = new Boss(employee.Object);

    // act
    boss.Talk();

    // assert
    employee.Verify(e => e.Blink(), Times.Exactly(2)); // Passes as expected
    employee.Verify(e => e.Blink(), Times.Exactly(1)); // Fails as expected
}
Run Code Online (Sandbox Code Playgroud)

当我强制执行失败测试时,输出为:

Moq.MockException:未在模拟上执行1次调用:e => e.Blink()

更好的是:

Moq.MockException:意外地执行了2次调用,而不是1次:e => e.Blink()

以下是测试涉及的项目:

public interface IEmployee { void Blink(); }

public class Boss {
    private readonly IEmployee _employee;
    public Boss(IEmployee employee) { _employee = employee; }

    public void Talk() {
        _employee.Blink(); …
Run Code Online (Sandbox Code Playgroud)

unit-testing moq mocking moq-3

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

mocking ×1

moq ×1

moq-3 ×1

unit-testing ×1