11章テスト
Rustで非同期システムを記述することが強力だということはわかった。しかし、Rustで大きな非同期システムを構築するには、非同期コードのテスト方法を知っておく必要がある。システムのサイズが大きくなれば、システムの複雑性も増大するからだ。
テストを行えば、実装中のコードからのフィードバックが多く得られ、安全なコードを速く書くことができるようになる。例えば、大規模なコードベースの一部の機能を変更したり追加したりする場合、システム全体を起動してコードが動作を確認するのは、時間もかかるし危険でもある。コードを変更した場合や必要なコードを追加した場合に、そのコードの部分だけに対してテストを行えば、フィードバックループを高速にできるし、エッジケースをテストできるようになり、コードをより安全にすることができる。本章では、非同期コードと、非同期コードと外部システムのインタフェースをテストするさまざまな手法を探求する。
本章を読めば、インタフェースのモックを作成し、それらのインタフェースに対する呼び出しを監視することで、隔離した環境でのテストを行えるようになる。これによって、完全に隔離されたテストを構築することができる。デッドロックや競合状態、チャネル容量の問題などの、非同期タスクを止めてしまう同期の落とし穴についてもテストできるようになる。最後に、サーバなどのネットワークインタラクションのモックを作成する方法を学び、さらに、すべてのフューチャを制御して細粒度にテストする方法と、ポーリングの条件が異なった場合に、システムの進行がどのように変わるかを知るためにポーリングを制御する方法についても学ぶ。
我々のテストの旅を、基本的な同期テストの説明から始めよう。
11.1 基本的な同期テスト ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access