【发布时间】:2012-07-19 09:08:44
【问题描述】:
我正在编写一个测试,我必须将一个模拟传递给一个特定的方法。我想知道,通过构造函数或直接将它传递给相关方法有什么好处。还是真的不重要。
例如
通过构造函数传递接口/模拟
class User()
{
IClock clock;
User(IClock clock) {this.clock = clock;}
User GetUser(){ ..}
UpdateUser(User user) {
...
this.clock.Now();
...
}
}
对
将接口/模拟传递给方法
class User()
{
User GetUser(){ ..}
UpdateUser(IClock clock, User user) {
...
clock.Now();
...
}
}
谢谢!
编辑
在这种情况下,IClock 将包装 DateTime。我这样做是为了可测试性。如此有效,我将有一个覆盖,将在其内部构造 IClock。
EG。对于方法案例:
UpdateUser(User user) {
UpdateUser(new Clock(), user);
}
时钟将封装日期时间。
【问题讨论】: