技術的には、データベース(nosqlなど)と通信するテストは単体テストではありません。これは、テストが外部システムとの相互作用をテストするものであり、分離されたコードのユニットをテストするだけではないためです。ただし、データベースと通信するテストは非常に便利なことが多く、他の単体テストで実行するのに十分な速度であることがよくあります。
通常、データベースを処理するためのすべてのロジックをカプセル化するサービスインターフェイス(UserServiceなど)があります。 UserServiceに依存するコードは、モックバージョンのUserServiceを使用でき、簡単にテストできます。
Mongoと通信するサービス(MongoUserServiceなど)の実装をテストする場合、ローカルマシンでmongoプロセスを開始/停止するJavaコードを記述し、MongoUserServiceをそれに接続させるのが最も簡単です。ノート。
MongoUserServiceのテスト中にデータベースの機能を模倣しようとすることもできますが、一般的にはエラーが発生しやすく、実際のデータベースとの相互作用である実際にテストしたいものはテストされません。したがって、MongoUserServiceのテストを作成するときは、テストごとにデータベースの状態を設定します。データベースを使用してこれを行うためのフレームワークの例については、DbUnitを参照してください。