Mox

https://github.com/dashbitco/mox

読むべき記事

Mocks and explicit contracts

モックに対する問題意識や思想を Jose が書いた記事

Elixir Test Mocking with Mox

GitHub API Client の作成のために、モックサーバーつまり GitHub API のシミュレータを作ったことによるデメリットを紹介しそれを Mox を使って改善する話が書いてある。

デメリットは

  • テストを書く際にモックサーバーのリターンを調べなければいけないこと
  • テストがモックサーバーに依存すること
  • explicit contract を Client に定義しなくてよくなってしまうこと

が挙げられている。 Mox を使うことで

  • クライアントのモックを作成する
  • ビヘイビアの定義の強制により explicit contract を定義できるようになる
  • 使用するライブラリを抽象化し、設計を改善する

点を紹介している。