繁体   English   中英

如何编写集成测试?

[英]How to write integration tests?

我的团队使用实体框架 6 ORM 开发了一个 Web API 2 应用程序。

我们的应用程序充当电子邮件,它的主要目的和作用是从一个客户向另一个客户发送一封信。

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

在发送信件时,发生的主要动作以及我们想要测试的是——

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

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

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

它不一定是端到端的测试。

谢谢

编辑:

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

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

  1. 收到信,这是逻辑
  2. 验证对数据库的 save 方法是否仅在应调用时调用
  3. 验证代码的序列化/反序列化位
  4. 验证目标选择器模块是否正常工作。

一旦您进行了这些“非调用”测试,您就会知道系统的所有部分都可以单独正常工作。 然后,您可以设置带有某种标记(即 TestCategory("SUPERSLOW"))的单元测试,然后在集成测试运行期间针对一组模拟收件人手动运行该单元测试以进行验证,而不是作为 CI 的一部分。

这里的关键词是:

  • 固体原则
  • 关注点分离
  • 嘲讽
  • 持续集成
  • 控制反转

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM