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

SNA*_*SNA 12 .net testing nunit unit-testing

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

Joe*_*ite 33

私人方法:

如果你试图测试非公开方法,通常意味着你做错了.

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

内部课程:

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

对于这种情况,请查看InternalsVisibleToAttribute.

  • 还值得注意的是,InternalsVisibleTo可用于公开仅由测试程序集使用的构造函数/方法,并将这些构造函数/方法保留在客户端代码之外. (3认同)

Bil*_*ard 5

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