It.IsAny<string>()
每次调用返回null的可能原因是什么?我是否错误地认为它应该返回一个非空字符串?
这里是使用方法 - 在这个方法中,如果第二个参数(连接字符串)为null,则Login方法会抛出ArgumentNullException异常。 我曾经假设It.IsAny<string>()
会提供一个非空字符串,从而可以避免ArgumentNullException异常。
var mockApiHelper = new Mock<ApiHelper>();
mockApiHelper.Setup(m => m.Connect(It.IsAny<string>(),
It.IsAny<string>(),
It.IsAny<string>()));
var repositoryPlugin = new RepositoryPlugin(mockApiHelper.Object);
repositoryPlugin.Login(new CredentialsInfo(), It.IsAny<string>());
Assert.IsTrue(repositoryPlugin.LoggedIn,
"LoggedIn property should be true after the user logs in.");
It.IsAny
的作用是验证从你的真实代码传递给模拟对象的值。 - Jon Skeet