如何使用NUnit测试私有方法和内部类?
答案 0 :(得分:33)
私人方法:
如果您正在尝试测试非公开方法,通常意味着您做错了。
如果您要测试的功能,但不想在您的课程中公开,代码会试图告诉您一些事情。你的班级可能有太多的责任。您应该认真考虑将该私有功能提取到新类中,为新类编写测试,并使旧类具有新类的私有实例。
内部课程:
这个更有效,特别是如果您正在为其他人编写类库以供重用。您可能拥有不是为一般用途而设计的类,但您希望为其编写单元测试。
对于这种情况,请查看 InternalsVisibleToAttribute。
答案 1 :(得分:5)
我通常不这样做。如果您彻底测试使用私有方法和内部类的公共方法,那么您应该能够测试所有私有功能而不会暴露它。
答案 2 :(得分:0)
您必须通过特定于测试的派生类公开调用它们的方法。
答案 3 :(得分:0)
只需使用此处显示的解决方案: C# "internal" access modifier when doing unit testing
您将看到内部可以并且应该进行测试。