测试内部类

时间:2009-03-03 12:03:48

标签: unit-testing tdd rhino

如何将单元测试写入内部类???

6 个答案:

答案 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)