首先,我最好问一下我是否应该嘲笑词典?如果我应该如何实现呢?
我正在使用Rhino Mocks。我浏览了它的文档,看到它可以模拟ArrayList。所以我在字典上尝试过但没有运气。我得到的错误是我没有称之为虚拟方法bla bla ...如果我不嘲笑它会是一个问题吗?
答案 0 :(得分:3)
您只能使用虚拟方法模拟接口或类:您不能模拟Dictionary<K,V>
,但可以模拟IDictionary<K,V>
。
这取决于你的情况,但它可能足以构建一个真正的字典,并用模拟对象填充它。
答案 1 :(得分:2)
在不知道您的特定测试场景的情况下,我不会模拟.NET框架类,因为您可以认为它们正常工作。
此规则的例外情况可能适用于允许访问外部资源的类(如File或SQLConnection),但这是因为您不希望在单元测试中设置这些资源,而不是因为您不想测试班级本身。
答案 2 :(得分:2)
我可以向你保证,字典在.Net中运行良好:)
我认为在编写测试时你需要务实,而不是试图模仿一切。因为你能走多远?你会如何模拟一个int?显然可以讨论边界线在哪里,但我通常不会嘲笑: