如何编写集成测试?

时间:2016-03-27 16:51:04

标签: c# entity-framework asp.net-web-api continuous-integration integration-testing

我的团队使用Entity framework 6 ORM开发Web API 2应用程序。

我们的申请充当电子邮件,其主要目的和行动是从一个客户发送信件到另一个客户。

由于这是应用程序的主要目的,我们都希望进行集成测试,以确保我们正确发送了一封信。那是因为我们不想意外地插入会破坏它的代码。

发送信件时,我们要测试的主要操作是 -

  • 通过 HTTP Post 方法收到一封信,并在服务器上验证
  • 该信件已保存到数据库
  • 这封信是序列化的。
  • 序列化字母通过外部模块发送到指定目的地。
  • 这封信在接收方反序列化。
  • 这封信被添加到收到的客户的数据库中。

我问这个是因为我对如何处理这个问题一无所知,但我真的想要那种我可以依赖的测试。

如何设置测试?我从哪里开始?如何实现通过测试发送的实际信件并确保其有效?

它不一定是端到端测试。

由于

编辑:

我不介意测试花费很长时间,它们可以在晚上运行,但我希望它们尽可能地验证应用程序主要部分是否按预期工作。

1 个答案:

答案 0 :(得分:1)

我会设置多个非实际的代码测试来验证你的逻辑:

  1. 收到这封信,这是逻辑
  2. 验证是否仅在应该
  3. 时调用数据库的save方法
  4. 验证代码的序列化/反序列化位
  5. 验证目标选择器模块是否正常工作。
  6. 一旦进行了这些“非调用”测试,您就会知道系统的所有位都是单独正常工作的。然后,您可以使用某种标记(即TestCategory(“SUPERSLOW”))设置单元测试,然后在集成测试运行期间针对模拟的一组收件人手动运行以进行验证,而不是作为CI的一部分。

    这里的关键词是:

    • SOLID原则
    • 分离关注
    • 嘲讽
    • 持续集成
    • 控制倒置