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

有帮助吗?

解决方案

您编写的测试指定了顶级类的外部接口的行为。该类是否使用内部类来实现该行为,是该类的实现细节,测试不需要了解它。

如果内部类无法通过顶级类接口进行充分测试,那么通常最好将内部类移出并直接作为新的顶级类进行测试。想要测试内部类是一种代码味道,内部类可能足以成为顶级类。

其他提示

不是我推荐它,但你也可以使用 InternalsVisibleToAttribute

使用MS Visual Studio进行单元测试时,您只需创建一个私有访问的。在内部它适用于我认为的反射。只需看一下生成的代码。

您不直接测试它。它将通过定义它的类进行测试。

而且,如果你应用TDD,正如这个问题标签目前所暗示的那样,你只需要编写一个内部类的调用测试是什么?我的意思是,它不是一个标准的课程,由您正在从事的课程私人拥有?

我们使用了一个帮助器类,它使用反射来加载和调用内部类的方法。也可以使用DEBUG符号(例如

)在编译时更改可访问性
#if DEBUG
public
#else
internal
#endif
    class MyInternalClass
{
    ...
}

然而,Esko Luontola的答案更为正确,因为它是最重要的功能或业务要求。很容易过于关注代码覆盖而不是测试重要的风险领域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top