如何使用 NUnit 模拟属性?
NOTE: 我发现这个外围的嘲笑答案 https://stackoverflow.com/questions/591174/how-to-mock-the-property-which-returns-the-list-object-in-rhino-mock/594933#594933变得非常有用,并将其重新调整为一个独特的问答条目,供其他人找到。
也欢迎其他答案。
NUnit-讨论注意事项:
NUnit Mocks 是在一个周末创建的
作为一个玩具模拟实现[...]我开始认为这是一个错误,因为你还很远
从第一个开始依赖它的人开始。
-- http://groups.google.com/group/nunit-discuss/msg/55f5e59094e536dc http://groups.google.com/group/nunit-discuss/msg/55f5e59094e536dc
(Charlie Pool 在 NUnit 模拟上)
来嘲笑Names以下示例中的属性...
Interface IView {
List<string> Names {get; set;}
}
public class Presenter {
public List<string> GetNames(IView view) {
return view.Names;
}
}
属性的 NUnit 模拟解决方案
using NUnit.Mocks;
在 NUnit 中属性名称可以被嘲笑获取属性名称模拟 get 访问器并设置属性名称使用模拟库来模拟集合访问器预计*(..)像这样的方法:
List names = new List {"Test", "Test1"};
DynamicMock mockView = new DynamicMock(typeof(IView));
mockView.ExpectAndReturn("get_Names", names);
IView view = (IView)mockView.MockInstance;
Assert.AreEqual(names, presenter.GetNames(view));
因此,在我们顶部的特定代码示例中,.Names属性被嘲笑为获取名称 or 设置名称.
Etc.
这篇博文 http://www.vergentsoftware.com/blogs/ckinsman/usingNUnitMocksDynamicMockWithAPropertyInC.aspx考虑到 NUnit 似乎只为目标方法提供模拟方法,提供了额外的见解:
我开始思考这个问题
意识到 Property getters 和
setter 只是被特殊对待
幕后的命名方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)