如何将单元测试写入内部类???
Chen Kinnrot
问问题
4273 次
6 回答
15
您编写指定顶级类的外部接口行为的测试。该类是否使用内部类来实现该行为,是该类的实现细节,测试不需要了解它的任何信息。
如果内部类无法通过顶级类的接口进行充分测试,那么通常最好将内部类移出并直接作为新的顶级类进行测试。想要测试内部类是一种代码味道,内部类可能足够重要,可以成为顶级类。
于 2009-03-03T12:10:22.893 回答
5
不是我推荐它,但您也可以使用InternalsVisibleToAttribute。
于 2009-03-03T12:19:58.157 回答
2
使用 MS Visual Studio 进行单元测试时,您只需创建一个私有 Accessor。在内部,它与我认为的反射一起工作。只需看一下生成的代码。
于 2009-03-03T12:10:26.417 回答
2
你不直接测试它。它将通过定义它的类进行测试。
而且,如果您应用 TDD,正如这个问题标签当前所暗示的那样,您刚刚编写的调用内部类的测试是什么?我的意思是它不能是标准课程,由您正在研究的课程私有吗?
于 2009-03-03T12:15:07.653 回答
1
我们使用了一个辅助类,它使用反射来加载和调用内部类的方法。也可以在编译时使用 DEBUG 符号更改可访问性,例如
#if DEBUG
public
#else
internal
#endif
class MyInternalClass
{
...
}
然而,Esko Luontola 的回答更正确,因为它是最重要的功能或业务需求。很容易过于关注代码覆盖率而不是测试重要的风险区域。
于 2009-03-03T12:15:08.700 回答
0
于 2011-06-30T00:47:39.060 回答