mockObject.Setup(m => m.MethodName()).Callback(() => /* 操作 */); // 设置属性的返回值 mockObject.SetupGet(m => m.PropertyName).Returns("mocked value"); // 设置属性的行为 mockObject.SetupSet(m => m.PropertyName = It.IsAny<string>()).Callback<string>(value => /* 操作 */...
// 假设有一个接口定义如下: public interface ICalculator { int Add(int a, ref int b); } // 创建模拟对象 var mockCalculator = new Mock<ICalculator>(); // 设置回调,设置ref参数的值 mockCalculator.Setup(x => x.Add(It.IsAny<int>(), ref It.Ref<int>.IsAny)) .Callback<int, int>...
32 mock.Setup(foo => foo.GetCountThing())33 .Returns(() => calls)34 .Callback(() => calls++);35 36// 第⼀次调⽤返回 0,下⼀次是 1,依次类推 37 Console.WriteLine(mock.Object.GetCountThing());匹配参数 1// 任意值 2 mock.Setup(foo => foo.DoSomething(It.IsAny<stri...
5 mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true); 6 7 // 匹配一个范围 8 mock.Setup(foo => foo.Add(It.IsInRange<int>(0, 10, Range.Inclusive))).Returns(true); 9 10 // 匹配正则表达式 11 mock.Setup(x => x.DoSomething(It.IsRegex("[a-d]+...
This should work because Returns, like Callback but unlike ReturnsAsync, has overloads that provide you with the invocation arguments. Forgive me for using a C# example, my VB.NET skillz have gone a bit rusty for 3 years or so. But here's the general idea: oManagerMock.Setup(manager ...
mock.Setup(foo => foo.GetCount()).Returns(() => count); // 在每一次调用的时候,返回不同的值 var mock = new Mock<IFoo>(); var calls = 0; mock.Setup(foo => foo.GetCountThing()) .Returns(() => calls) .Callback(() => calls++); /...
34 .Callback(() => calls++); 35 36 // 第一次调用返回 0, 下一次是 1, 依次类推37 Console.WriteLine(mock.Object.GetCountThing());匹配参数1 // 任意值 2 mock.Setup(foo => foo.DoSomething(It.IsAny<string>())).Returns(true); 3 4 // 提供的值必须匹配一个函数, lazy evaluated 5 ...
9 .Callback(( string s) => calls.Add(s)); 10 11 // 使用泛型语法 12 mock.Setup(foo => foo.Execute(It.IsAny < string > ())) 13 .Returns( true ) 14 .Callback < string > (s => calls.Add(s)); 15 16 // 使用多个参数 17 mock.Setup(foo => foo.Execute(It.IsAny < int...
使用回调函数:可以使用Moq的Callback方法,在调用被模拟方法时执行自定义的回调函数。通过回调函数,可以在调用时返回非零结果,或执行其他需要的操作。 使用默认值替代:如果不希望返回零结果,也不需要设置特定的返回值,可以使用Moq的DefaultValue属性来指定默认值。默认值可以是非零的,以满足测试需求。 总结起来,Moq返回零...
value === 2)) //false - denies the write operation .returns(false) .setup(instance => { instance.property = It.Is(value => value === 3) }) // allows the write operation .callback(() => true) .setup(instance => { instance.property = value }) .throws(new Error("an object ...