用不同的参数调用两次相同的方法

如何在下面做到这一点? 被测对象调用ReadAppSetting两次以获取两个不同的应用程序设置,并在找不到它时默认值。 第一次调用返回null(这意味着第一次moq设置不起作用),第二次ReadAppSetting按预期返回(moq设置工作)。

var mock = new Mock<IConfigReader>();
mock.Setup(foo => foo.ReadAppSetting("PropA", "George"))
    .Returns("George");
mock.Setup(foo => foo.ReadAppSetting("PropB", "5000"))
    .Returns("5000");
MyClass objectUnderTest = new MyClass(mock.Object);
...

如果模仿对象调用返回null那么您没有提供模拟设置上使用的完全相同的参数值。 检查你在MyClass如何调用配置阅读器。 可能你传递了错误的键值或错误的默认值。

顺便说一句,如果你想配置读者返回所有调用的默认值,那么你可以使用单一设置:

mock.Setup(foo => foo.ReadAppSetting(It.IsAny<string>(), It.IsAny<string>()))
    .Returns<string, string>((key, defaultValue) => defaultValue);
链接地址: http://www.djcxy.com/p/35339.html

上一篇: Call same method twice with different parameters

下一篇: xUnit and Moq do not support async