什麼可能導致It.IsAny<string>()
在每次調用時返回null?假設它被設計爲返回一個非空字符串,我不正確嗎?Moq - It.IsAny <string>()總是返回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.");
啊,我明白了。我已經爲這個問題添加了完整的測試。我使用它既是爲了我的模擬,也是爲了一個真實的物體。但它聽起來像它不適用於實際的物體? – Jeremy 2011-05-23 14:47:39
@Jeremy:不,這個想法是,你將真實值(以及樣本值)傳遞給你的真實代碼。 'It.IsAny'旨在驗證從您的真實代碼傳遞給您的模擬值。 – 2011-05-23 14:48:48
知道了 - 所以我一直在想它作爲一種數據生成技術......但它並不是爲此而設計的。謝謝! – Jeremy 2011-05-23 14:59:16