C# 如何对电子邮件规则进行单元测试
我把一个员工的电子邮件下载到一个表中,然后把我刚下载的电子邮件收集起来,并对它们运行一系列规则 e、 g.如果电子邮件来自blah@email.com,将电子邮件发送到folder1 如何为这个过程编写单元测试?C# 如何对电子邮件规则进行单元测试,c#,unit-testing,mbunit,C#,Unit Testing,Mbunit,我把一个员工的电子邮件下载到一个表中,然后把我刚下载的电子邮件收集起来,并对它们运行一系列规则 e、 g.如果电子邮件来自blah@email.com,将电子邮件发送到folder1 如何为这个过程编写单元测试? 我是否需要创建一个虚拟的电子邮件集合,然后为每个电子邮件设置一个规则? 我很难打破单元测试,我总是想在测试中加入数据库过程,我知道这是错误的。单元测试的确切形状将取决于系统的体系结构。通常,您会创建一组模拟电子邮件。使用模拟电子邮件对象。它们不必存在于数据库中。无论如何,你应该将电子邮
我是否需要创建一个虚拟的电子邮件集合,然后为每个电子邮件设置一个规则?
我很难打破单元测试,我总是想在测试中加入数据库过程,我知道这是错误的。单元测试的确切形状将取决于系统的体系结构。通常,您会创建一组模拟电子邮件。使用模拟电子邮件对象。它们不必存在于数据库中。无论如何,你应该将电子邮件表示为类
编写单元测试以对模拟电子邮件进行操作,并断言规则的行为符合您的预期。单元测试的确切形状将取决于系统的体系结构。通常,您会创建一组模拟电子邮件。使用模拟电子邮件对象。它们不必存在于数据库中。无论如何,你应该将电子邮件表示为类
编写单元测试来处理模拟的电子邮件,并断言规则的行为符合您的预期。如何测试软件很大程度上取决于您如何将其分解为不同的组件。实际上没有对“过程”的测试。您应该将重点放在单个组件上。例如,使用您描述的流程,软件可以分解为不同的组件,如下所示:
- 电子邮件下载程序
- 电子邮件解析器
- 规则引擎
- 电子邮件路由器
基本上,您将单独测试每个组件,运行测试,测试每个组件的各个方面(尽可能多)。如何测试软件很大程度上取决于您如何将其分解为不同的组件。实际上没有对“过程”的测试。您应该将重点放在单个组件上。例如,使用您描述的流程,软件可以分解为不同的组件,如下所示:
- 电子邮件下载程序
- 电子邮件解析器
- 规则引擎
- 电子邮件路由器
基本上,您将单独测试每个组件,运行测试,测试每个组件的各个方面(尽可能多)。我在这里是一个纯粹主义者,但是单元测试应该测试最小的代码单元。这通常是一个类方法。因此,您应该查看您的类拥有的每个公共方法,并编写只测试该方法中的逻辑的测试。这可能意味着模仿其他交互类,或者重构代码以减少依赖性。通常,您会发现您有一个具有多个职责的类,应该将其分解为多个类,这样就可以为其编写单元测试。这就是为什么单元测试是评估活动而不是测试活动。这将提高您的设计质量
您还可以查看以客户为中心的测试,以测试它们是否能够协同工作。我在这里是一个纯粹主义者,但是单元测试应该测试最小的代码单元。这通常是一个类方法。因此,您应该查看您的类拥有的每个公共方法,并编写只测试该方法中的逻辑的测试。这可能意味着模仿其他交互类,或者重构代码以减少依赖性。通常,您会发现您有一个具有多个职责的类,应该将其分解为多个类,这样就可以为其编写单元测试。这就是为什么单元测试是评估活动而不是测试活动。这将提高您的设计质量 您还可以查看以客户为中心的测试,以测试所有这些测试是否协同工作