使用部分类编写NUnit测试的优缺点是什么?
我要开始了:
亲:私人方法可以测试
con:TDD不再可能了
还有什么?
答案 0 :(得分:6)
Con:要么您必须测试与您发运的版本不同的版本,要么最终在您的运输代码中使用您的单元测试代码(和成员)。
总的来说,对我来说,这听起来真的很糟糕。
我通常选择单独的生产/测试项目,[InternalsVisibleTo]
允许测试内部方法(这违背了一些人的教条,但对我来说似乎很实用)。
答案 1 :(得分:2)
我认为能够测试私有方法是一种“骗局”,因为它可以鼓励在现有类中增加新代码。如果私有逻辑如此复杂以至于需要专门的测试(超出公众可访问的范围),那么将该逻辑作为具有可公开测试的接口的单独类来提取有很多价值。对于边缘情况,我谨慎地同意Jon使用内部方法的方法(只要注意内部暴露的程度。)
也就是说,我偶尔会将一个类专门打开,以便我可以编写使用虚方法调用来检测效果的测试,这与部分类方法松散相关。这总觉得我有点脏,我有时希望有一种方法可以将课程标记为“内部未密封”。