我们正在开发一种新的API。我的同事和我对内部课程是否应该进行单元测试有不同的看法。
我的同事给出的非单元测试内部课程
的要点我在青睐单元测试内部课程
中给出的要点我尝试在线搜索,但似乎没有关于此的最佳做法或标准意见。你认为什么是一个好的方法?
请注意java人员:“ internal ”是C#中的关键字,它限制了类对程序集的可见性。在程序包/程序集之外无法访问该类。它不等同于私人课程。
答案 0 :(得分:5)
这应该根据具体情况决定:
当您需要重构共享代码时,单元测试共享实现特别有用。如果您进行了重大更改,并且所有单元测试都是通过其他类间接完成的,那么最终会出现多个单元测试失败,其中没有一个指向根本原因。另一方面,如果您对共享实现进行了直接单元测试,则根本原因更容易检测。
此外,通过重构使用它的类的测试,您不会失去内部类代码的覆盖范围,因为您可以直接测试类本身。
您的参数适用于第一个项目符号(共享实现)中的类,而您的同事的参数适用于第二个项目符号(私有实现)中的类。