gpt4 book ai didi

c# - 如何使用 Moq.MockRepository.Of() 方法

转载 作者:太空狗 更新时间:2023-10-29 18:29:43 25 4
gpt4 key购买 nike

Moq.MockRepository.Of() 和 Moq.MockRepository.OneOf() 的正确用法是什么?我试过类似的方法来弄清楚。

var mr = new MockRepository(MockBehavior.Strict);
var m = mr.Of<ISomeInterface>();
foreach (var obj in m)
cnt++;

我发现 cnt 一直递增到没有尽头。是什么赋予了?与此相关的文档尚未发布。

最佳答案

您可以使用 Moq.MockRepository.Of() 通过表达式创建模拟。这最好用一个例子来解释:

public interface ITest
{
String Say();
Int32 DoSomething(Int32 a, Int32 b);
}

class Program
{
public static void Main()
{
var repo = new MockRepository(MockBehavior.Strict);
var mock = repo.Of<ITest>()
.Where(s => s.Say() == "Hi!")
.Where(s => s.DoSomething(5, 4) == 20)
.Where(s => s.DoSomething(4, 5) == 9)
.Where(s => s.DoSomething(It.IsAny<Int32>(), 7) == 99)
.First();

Console.WriteLine(mock.Say()); // prints Hi!
Console.WriteLine(mock.DoSomething(5, 4)); // prints 20
Console.WriteLine(mock.DoSomething(4, 5)); // prints 9
Console.WriteLine(mock.DoSomething(23423, 7)); // prints 99
Console.WriteLine(mock.DoSomething(0, 0)); // Fail due to MockBehavior.Strict

Console.ReadKey();
}
}

关于c# - 如何使用 Moq.MockRepository.Of() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638422/

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