什么是隔离一个'单位的最佳方法。在单元测试中?

时间:2018-01-27 14:26:47

标签: c# unit-testing

例如,我正在开发一个框架,由3个项目组成,产生3个dll:A,B,C。现在,我已经在程序集A中使用方法1实现了一个功能,该功能又调用程序集B中的方法2,而程序集B又在程序集C中调用方法3.并且所有3种方法都是公共的

因此,为了测试此功能,我是否需要为所有3种方法编写单元测试代码?它可能听起来多余,但除了调用下一个方法之外,所有方法都有自己的逻辑。这些逻辑也需要进行测试。

1 个答案:

答案 0 :(得分:2)

  

因此,为了测试此功能,我是否需要编写单元测试代码   对于所有3种方法?

是的,测试涵盖所有方法是理想的。但这并不能解决您的问题,因为每种方法都应该独立于其他方法进行测试。

为此,答案是依赖注入。适用于您的情况,您的框架A 依赖于B的一个,而是取决于它的抽象。很难给出一个非常完整的例子,因为你没有提供任何代码,但至少这是理论。

要实现这一点,不要将类B直接传递给A,而是传递B实现的接口,在测试中,您将创建一个Mock/Stub Class,您已完成控制。

这实际上是单元测试的一大好处,因为它使您的代码更加分离。提供了一些特权here