是否值得将类访问修饰符更改为public,以便从另一个程序集进行单元测试

本文关键字:另一个 程序集 单元测试 public 访问 值得 是否 | 更新日期: 2023-09-27 18:13:01

如果单元测试驻留在另一个程序集中,为了单元测试的目的,是否值得将类访问修饰符(没有或最初是内部的)更改为公共?私有或内部指示类封装在程序集中。如果答案是否定的,那么c#中的解决方案是什么?

是否值得将类访问修饰符更改为public,以便从另一个程序集进行单元测试

解决这个问题最简单的方法是应用测试驱动开发 (TDD),它更像是一种反馈机制,而不是一种设计方法。

当使用TDD时,您首先编写测试,因此如果您的被测系统(System Under test, SUT)难以测试,应该立即清楚。这使SUT的设计变得易于测试。

这并不意味着你可以妥协封装。你仍然应该坚持良好的面向对象设计原则。

如果这样做,不应该存在任何未被测试覆盖的内容。您可能有内部类,但它们是通过其他公共类的公共成员间接测试的。永远不要测试内部组件。如果您这样做,您就将测试与那些内部组件耦合在一起,这意味着它们也可能是公开的。