在C#中测试/注入私有字段的好习惯是什么?
发布时间:2020-12-16 00:20:49 所属栏目:百科 来源:网络整理
导读:如果这个重复,我道歉.我被赋予了为该方法添加一些覆盖的任务,并被告知要模拟私有List string属性.我的问题是:有没有办法测试私有字段? 我找到的解决方案是添加新的构造函数只是为了注入这个私有列表.我不确定这是否正确,所以任何帮助都将受到高度赞赏. pub
如果这个重复,我道歉.我被赋予了为该方法添加一些覆盖的任务,并被告知要模拟私有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 } } 解决方法
类的私有逻辑应该在其行为的公共表达中可见.换句话说,理论上说,根本不需要测试私有字段.
无法直接测试私有字段;毕竟他们是私人的.如果您真的认为需要测试私有字段,那么我建议将其改为内部,并通过[InternalsVisibleTo]属性将其公开给您的单元测试程序集. 话虽如此,有些框架允许这样的事情,例如TypeMock. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ajax返回的data为字符串,如何返回json
- 10.1 oracle alert.log中'Process Q000 Started Up But
- sqlite returned: error code = 14, msg = cannot open fil
- Frame动画的两种方法(写死的Xml与SD卡图片动态加载)
- NoSQL 之 Morphia 操作 MongoDB
- c – 类型化无效指针指向对象时未调用析构函数
- .NET中的依赖注入与示例?
- ruby-on-rails – Rails has_many:通过“子对象”的sum属性
- 正则表达式 – 简化此正则表达式
- Oracle侦听器未运行,无法启动