Joh*_*n K 7 .net c# nunit mocking
如何使用NUnit模拟属性?
注意:我发现这个外围模拟答案非常有用,并将其作为一个独特的问答条目重新用于其他人,以供其他人查找.
其他答案也欢迎.
NUnit-Discuss注意: NUnit Mocks是在周末创建的玩具模拟实现[...]我开始认为这是一个错误,因为你远离第一个依赖它的人.
- http://groups.google.com/group/nunit-discuss/msg/55f5e59094e536dc(NUnit
Mocks上的Charlie Pool)
要在以下示例中模拟Names属性...
Interface IView {
List<string> Names {get; set;}
}
public class Presenter {
public List<string> GetNames(IView view) {
return view.Names;
}
}
Run Code Online (Sandbox Code Playgroud)
using NUnit.Mocks;
Run Code Online (Sandbox Code Playgroud)
在NUnit的一个属性名可以与嘲笑get_PropertyName嘲笑get访问和set_PropertyName嘲笑set访问,使用模拟库的期待*(..)像这样的方法:
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));
Run Code Online (Sandbox Code Playgroud)
因此,在顶部的特定代码示例中,.Names属性被模拟为get_Names或set_Names.
考虑到NUnit似乎只为目标方法提供了模拟方法,这篇博文提供了额外的见解:
我开始考虑它并意识到Property getters和setter只是被视为特别命名的方法
| 归档时间: |
|
| 查看次数: |
14377 次 |
| 最近记录: |