使用NUnit测试私有方法和内部类?

时间:2009-06-10 03:22:05

标签: .net unit-testing testing nunit

如何使用NUnit测试私有方法和内部类?

4 个答案:

答案 0 :(得分:33)

私人方法:

如果您正在尝试测试非公开方法,通常意味着您做错了。

如果您要测试的功能,但不想在您的课程中公开,代码会试图告诉您一些事情。你的班级可能有太多的责任。您应该认真考虑将该私有功能提取到新类中,为新类编写测试,并使旧类具有新类的私有实例。

内部课程:

这个更有效,特别是如果您正在为其他人编写类库以供重用。您可能拥有不是为一般用途而设计的类,但您希望为其编写单元测试。

对于这种情况,请查看 InternalsVisibleToAttribute

答案 1 :(得分:5)

我通常不这样做。如果您彻底测试使用私有方法和内部类的公共方法,那么您应该能够测试所有私有功能而不会暴露它。

答案 2 :(得分:0)

您必须通过特定于测试的派生类公开调用它们的方法。

答案 3 :(得分:0)

只需使用此处显示的解决方案: C# "internal" access modifier when doing unit testing

您将看到内部可以并且应该进行测试。