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.

テスト

テストはソフトウェア開発の重要な一部です。このレッスンではElixirコードをExUnitを用いてテストする方法と、そのためのベストプラクティスをいくつか見てきます。

Bypass

アプリケーションのテストでは、しばしば外部サービスにリクエストを出す必要があります。 予期せぬサーバーエラーのような、さまざまな状況をシミュレートしたいこともあるでしょう。 Elixirでは、このような状況を効率的に処理するために、ちょっとした手助けが必要です。

このレッスンでは、bypass を使って、テストの中でこれらのリクエストを素早く簡単に処理する方法を探ります。

Mox

MoxはElixirで並列モックを設計するためのライブラリです。

StreamData

ExUnit のような例ベース(example-base)のユニットテストライブラリは、考えている通りにコードが動くことを保証できる素晴らしいツールです。 しかし、例ベースのユニットテストにはいくつかの問題があります:

  • 限られた数の入力でのみテストをするため、エッジケースを見逃しやすい
  • 要件を入念に考えることをせずにテストを書けてしまう
  • 1つの関数を複数の例でテストする場合はとても冗長になりやすい

このレッスンでは、 StreamData を使うことでこれらの問題をどのように克服できるかを見ていきます。