单元测试 – 单独的类与方法

快速设计问题.

ClassA有一个名为DoSomething(args)的方法

在DoSomething()中,在它实际上可以做某事之前,它需要用args做一些准备工作.我认为这应该封装在ClassA中(与在外面做准备工作并传递它相反),因为没有其他事情需要知道DoSomething需要这个准备工作.

然而,这是实际准备工作代码所属的地方让我思考.

我的特定示例中的准备工作是从args创建满足特定条件的项目列表.

我的预感是我应该创建一个新类ListOfStuff,它在构造函数中使用args并将此准备工作放在这里.

从TDD的角度来看,我认为这是正确的选择.然后我们可以对ListOfStuff进行单元测试,直到我们内心深处.如果我们将准备工作放在ClassA的私有方法中,我们只能通过测试DoSomething()来间接测试它.

但这有点过分吗?自从采用TDD和DI方法以来,我已经看到了我写的多个类 – 我应该担心吗?

助教.

最佳答案
这里有几个启发式方法.

>这个班上有州吗?
从调用中幸存下来
调用?这项准备工作是否得到
每次需要时都会完成
doSomething(),或者它完成了
得救了吗?如果是这样,那就争辩说
类.
>这个计算是否需要发生
在不止一次的地方?如果是这样,
争论一个阶级.
>可以的细节
doSomething()的实现
方法,或准备工作
它,改变而不影响
封闭课程?如果是这样,那就是争论
为了一堂课.

好吧,三个启发式.没有人期待西班牙宗教裁判所.

转载注明原文:单元测试 – 单独的类与方法 - 代码日志