Hat*_*oft 3 c# tdd unit-testing code-coverage
如果这是重复的,我很抱歉。我被赋予了为该方法添加一些覆盖范围的任务,并被告知要模拟私有List<string>财产。我的问题是:有没有办法测试私有字段?
我找到的解决方案是添加新的构造函数只是为了注入这个私有列表。我不确定这是否是正确的方法,所以任何帮助将不胜感激。
public class Class1
{
public Class1(List<string> list)//This is just for Unit Testing
{
list1 = list;
}
private readonly InjectRepository _repository;
//
public Class1(InjectRepository repository)//This is the actual constructor
{
_repository = repository;
}
private List<string> list1 = new List<string>();
public void Do_Complex_Logic()
{
//list1 will be set with items in it
//Now list1 is passed to some other instance
}
}
Run Code Online (Sandbox Code Playgroud)
类的私有逻辑应该在其行为的公共表达中可见。换句话说,理论上,根本不需要测试私有字段。
没有办法直接测试私有字段;毕竟他们是私人的。如果您真的认为需要测试私有字段,那么我建议将其设为内部,并通过[InternalsVisibleTo]属性将其公开给您的单元测试程序集。
话虽如此,有些框架允许这样的事情,比如TypeMock。
| 归档时间: |
|
| 查看次数: |
2628 次 |
| 最近记录: |