【发布时间】:2012-03-15 03:09:46
【问题描述】:
我有一个测试文件,我在其中存根测试类的依赖项(主要是存储库)。 存储库存根示例(从大约 200 行缩短):
internal class doerRepository : IDoerRepository
{
public IQueryable<Doer> ActiveDoers
{
get
{
Account account = new Account();
//Property setting for account
Zone zone = new Zone();
//Property setting for zone
Doer doer = new Doer();
doer.Zone = doerZone;
doer.Account = doerAccount;
var list = new List<Doer>();
list.Add(doer);
return list.AsQueryable();
}
}
}
一个测试方法是这样的:
[Test]
public void IsValidDoer_DoerIsValid()
{
var doerValidation = new DoerValidation(new doerRepository());
//Assert things
}
问题是这个实体环境(它存根大约一半的数据库)是我的基线。我要为这个测试文件做大约 25 个测试。对于每个测试,我必须稍微更改存根(尝试使用无效区域、无效帐户等)。我最终复制粘贴了 200 行来更改一件小事(我必须重命名该类)。
是否可以重用存根代码并只进行相关更改? 我试过了,但是我改变的值没有更新
internal class doerRepository2 : IDoerRepository
{
public IQueryable<Doer> ActiveDoers
{
get
{ List<Doer> list = new doerRepository().ActiveDoers.ToList();
list.First().Account = new Account();
return list.AsQueryable();
}
}
}
【问题讨论】:
标签: c# unit-testing stub