久しぶりのブログになってしまいました。 開発チームのエンジニア、片岡です。 今回は、ユニットテストにおける時間の問題についてのTipsです。 ユニットテストを行う際に手間のかかる作業として、テスト用環境の構築があります。 今はDockerがあるのでかなり手間が減りました。 ユニットテストは何度やっても同じテストができて、同じ結果になることが重要ですが、その際に問題となるのはシステム日時です。 「今日」とか「今月」などの日付・時刻によって返す結果が変わる処理があった場合にどうやって環境を設定しておけばよいか。 Docker Composeとlibfaketimeを使ってシステム日時を固定することができます。 github.com 以下、PythonのWebフレームワークであるDjangoをサンプルとして方法を紹介します。 他の言語、フレームワークでも基本は同じになります。 1. Docker
![Docker Compose + libfaketimeでテスト用コンテナの日時を固定する - REVISIO Tech Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/dbdc20cd13f8a524f5c9639740631f938b017137/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmotoy3d%2F20210823%2F20210823174827.png)