当使用moq时,我有一个奇怪的问题。最小起订量验证不起作用无效
在一个项目中,当我尝试验证某个方法已被调用时,它说它没有。当我调试测试时,它清楚地调用了该方法。
这是一个简单的缓存对象,我想查看是否将某些内容添加到缓存中。我有(其中包括)添加,包含和获取方法。
我的验证工作正常用以下方法:
bool Contains(string key);
T Get<T>(string key);
但不是在这:
void Add(string key, object objectToCache, CacheItemPolicy policy);
我已经尝试白衣精确值,我给的方法是:
mockedCache.Verify(p => p.Add(LOCATION_CACHE_KEY, locations, policy), Times.Once());
使用It.IsAny
mockedCache.Verify(p => p.Add(It.IsAny<string>(), It.IsAny<IEnumerable<string>>(),
It.IsAny<CacheItemPolicy>()), Times.Once());
无论我尝试什么,我都会得到被称为0次的响应。
我从来没有见过这种行为。有人可以告诉我什么是错的吗?
感谢
迈克尔
更新: 作为@SergRogovtsev建议,我看着生成的输出最小起订量。
不调用了IEnumerable但名单
Moq倾向于写出在断言消息中被称为*的东西。叫什么?另外,你有没有'时代'尝试? – 2012-08-13 14:33:50
在您验证...这是一个错字? 'It.IsAny'。它应该是'It.IsAny ()' –
2012-08-13 14:34:45
你是否认为你的代码是错误的,并且Add没有被调用? – cadrell0 2012-08-13 14:35:26