最近,我正在研究遗留代码的单元测试用例,在编写测试用例时,我提出了一个问题。
因为我正在编写单元测试用例而不是集成测试。问题出在私有方法上。在我们的代码中,公开方法依赖于5 私有方法。
对于单元测试用例,我需要给出私有方法的假实现,但由于方法是私有的,我无法这样做。 因为 MOQ模拟框架不支持私有方法的模拟功能。甚至我也无法编写私有方法的测试用例。
我正在考虑的可能方法
将所有私有方法移动到不同的类中。并使它们公开,并创建此类的接口。通过这种方式,我可以在运行时提供虚假实现,因为现在我们有类的接口。
但是这种方法的问题是我需要将这个私有方法公开用于单元测试用例。因此,将其公之于众是一种很好的做法。
答案 0 :(得分:1)
当我开始看到自己编写很多私有方法时,我通常会拆分类。但是你有几个选择:
仅对公开界面进行全面测试。你应该覆盖你的私人方法。
您可以制作私有方法internal
,并将测试项目指定为friend assembly。然后他们可以直接进行单元测试。
您已经考虑过的解决方案。有时难以测试的代码表明内部有一个类试图爆发。