如何将单元测试写入内部类???
答案 0 :(得分:15)
您编写的测试指定了顶级类的外部接口的行为。该类是否使用内部类来实现该行为,是该类的实现细节,测试不需要了解它。
如果内部类无法通过顶级类接口进行充分测试,那么通常最好将内部类移出并直接作为新的顶级类进行测试。想要测试内部类是一种代码味道,内部类可能足以成为顶级类。
答案 1 :(得分:5)
不是我推荐它,但您也可以使用InternalsVisibleToAttribute。
答案 2 :(得分:2)
使用MS Visual Studio进行单元测试时,您只需创建一个private Accessor。在内部它适用于我认为的反射。只需看一下生成的代码。
答案 3 :(得分:2)
您不直接测试它。它将通过定义它的类进行测试。
而且,如果你应用TDD,正如这个问题标签目前所暗示的那样,你只需要编写内部类调用的测试是什么?我的意思是,它不是一个标准的课程,由您正在从事的课程私人拥有?
答案 4 :(得分:1)
我们使用了一个帮助器类,它使用反射来加载和调用内部类的方法。也可以使用DEBUG符号(例如
)在编译时更改可访问性#if DEBUG
public
#else
internal
#endif
class MyInternalClass
{
...
}
然而,Esko Luontola的答案更为正确,因为它是最重要的功能或业务要求。很容易过于关注代码覆盖而不是测试重要的风险领域。
答案 5 :(得分:0)