2009-11-12 91 views
0

我将一位员工的电子邮件下载到一个表格中,然后我收集了我刚刚下载的那些电子邮件集合,并在其上运行一系列规则。如何对电子邮件规则进行单元测试

例如如果来自[email protected]的电子邮件,将电子邮件路由到folder1。

我该如何为这个过程编写单元测试?
我需要创建一个虚拟的邮件集合,然后为每个邮件创建一个规则吗? 我很难打破单元测试,我总是希望将数据库过程包含到我认为是错误的测试中。

回答

2

单元测试的确切形状将取决于系统的体系结构。通常,您会创建一组模拟电子邮件。使用模拟的电子邮件对象。它们不必实际存在于数据库中。无论如何,你都应该把电子邮件表示成类。

将您的单元测试写入模拟电子邮件上的Act,并声明该规则的行为符合您的期望。

3

你如何测试一个软件很大程度上取决于你如何将它分解成不同的组件。真的没有一个“过程”的测试。您应该专注于单个组件。例如,对于像你描述的一个过程中,软件可以被分解成不同的组件如下:

  • 电子邮件下载
  • 电子邮件分析器
  • 规则引擎
  • Ë邮件路由器

您将基本上单独测试每个组件,运行测试(每个组件尽可能多地执行每个方面)。

0

我在这里是个纯粹主义者,但是单元测试应该测试最小的代码单元。这通常是一种类方法。所以你应该看看你的类或类所具有的每个公共方法,并编写只测试该方法逻辑的测试。这可能意味着嘲笑其他交互的类,或者重构代码以减少依赖关系。通常你会发现你有一个具有多个职责的类,这个职责应该被分解成多个类,这将使得编写单元测试成为可能。这就是单元测试如何作为评估活动而不是测试活动。它应该会提高设计的质量。

您也可以看看以客户为中心的测试,以便测试它们一起工作。

相关问题