我将一个员工的电子邮件下载到一个表格中,然后我收集了我刚下载的电子邮件集合,并对它们运行了一系列规则。
e.g。如果发送电子邮件至blah@email.com,请将电子邮件发送至folder1。
我怎样才能为这个过程编写单元测试?
我是否必须创建一个虚拟的电子邮件集合,然后为每个电子邮件制定一个规则?
我很难打破单元测试,我总是希望将数据库程序包含在我知道错误的测试中。
答案 0 :(得分:3)
如何测试软件主要取决于您如何将其分解为不同的组件。实际上没有对“过程”的测试。你应该专注于个别组件。例如,通过类似于您描述的过程,可以将软件分解为不同的组件,如下所示:
你本质上是单独测试每个组件,运行测试来运行每个组件的每个方面(尽可能多)。
答案 1 :(得分:2)
单元测试的确切形状取决于系统的体系结构。通常,您会创建一组模拟电子邮件。使用模拟的电子邮件对象。它们实际上不必存在于数据库中。无论如何,您应该将电子邮件表示为类。
将您的单元测试编写为对模拟电子邮件执行操作,并声明该规则的行为符合您的预期。
答案 2 :(得分:0)
我在这里是一个纯粹主义者,但是单元测试应该测试最小的代码单元。这通常是一种类方法。因此,您应该查看您的类或类具有的每个公共方法,并编写测试,该测试仅测试该方法中的逻辑。这可能意味着模拟其他类交互或重构代码以减少依赖性。通常,您会发现您有一个具有多个职责的类,应该将其分解为多个类,这样可以编写单元测试。这就是单元测试是评估活动而不是测试活动的方式。它应该提高你的设计质量。
您也可以查看以客户为中心的测试,以便一起测试。