【发布时间】:2011-12-10 16:45:03
【问题描述】:
我刚开始使用 NMock 进行单元测试
我的一个测试用例涉及在字典中添加一个条目,然后将其传递给正在测试的单元。我将地图定义为:
var item = new Mock<MyClass>().Object;
var myMap = new Dictionary<MyClass, IList<MyOtherClass>>
{
{ item, completionRequirement }
};
但是,当我在被测单元内执行 myMap.ContainsKey(item) 时,它会返回 false。
我可以在字典中查看代理项目。我猜我还需要在模拟的item 上做其他事情。(很可能定义.Equals(object o))。
我的问题是:
- 如何为模拟的
item定义 Equals(object o)。 - 或者是否有完全不同的解决方案。
【问题讨论】:
-
我打赌你写错了。请张贴调用
ContainsKey的代码。你不应该写myMap.ContainsKey(item),因为item是Mock<MyClass>类型,字典会期望MyClass类型的实例。还是 NMock 的Mock<T>支持隐式转换? -
我更新了代码。感谢您指出差距!
标签: c# .net unit-testing mocking nmock