Lessons: Testing

The first step to writing fault tolerant and scalable code is writing bug free code. In these lessons we explore how best to test our Elixir code.

测试是软件开发重要的一部分,这节课我们会讲一下如何使用 ExUnit 测试 Elixir 代码,以及测试中的最佳实践方法。

测试的时候,很多情况下我们要对外部服务发出请求。我们甚至可能需要模拟不同的场景,比如意外发生的服务器错误。在 Elixir 中要高效地实现上面的功能可得向外获取一些帮助。

在本章课程中,我们将探索 bypass 是如何快速方便地帮助我们在测试中处理这些请求。

基于用例的单元测试工具库,如 ExUnit 是帮助你验证代码是否与预期运行逻辑相符的好工具。 但是基于用例的单元测试有它的缺点:

  • 由于你只测试某一些输入,一些极端情况很容易被忽略。
  • 你可能没有仔细思考清楚需求就能够写出这些测试用例。
  • 仅为一个函数编写几个测试样例也可能会非常繁琐。

本教程将探索如何使用 StreamData 来帮助我们克服上述缺点。