gpt4 book ai didi

c# - 关于使用 Setup() 设置最小起订量行为的问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:48 25 4
gpt4 key购买 nike

我正在尝试 moq我对 Setup() 方法有疑问。我有以下接口(interface)和类:

public interface IMyInterface
{
void Print(string name);
}
public class MyClass
{
private IMyInterface my;
public MyClass(IMyInterface my)
{
this.my = my;
}

public void Print()
{
my.Print("hello world");
}
}

我已经使用 NUnit 进行了单元测试:

[Test]
public void AnotherTest()
{
var mock = new Mock<IMyInterface>();
mock.Setup(m => m.Print("hello world")).AtMostOnce();

var myClass = new MyClass(mock.Object);
myClass.Print();

mock.Verify(m => m.Print("hello world"), Times.Exactly(1));
}

我尝试对下面的行进行注释/取消注释,并且两个测试都成功了。这让我想知道在这种情况下是否需要 Setup(),因为我正在执行 Verify()?

我使用的是 3.5.716.1 版本。

最佳答案

在您的第一个示例中,您是正确的,您不需要调用设置,因为您正在验证设置是否恰好执行了一次。

但是在您的第二个单元测试中,它通过了,因为您实际上并没有验证您的设置。

如果您调用 mock.VerifyAll() 测试将失败。

AtMostOnce() 设定了它只会执行一次的预期。只有当您明确验证设置被调用一次时,测试才会失败。它实际上不会因为您多次调用它而失败。

关于c# - 关于使用 Setup() 设置最小起订量行为的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1285939/

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