単体テストに関する限り、実際に機能するものは何でも良いと思います。単体テストによって何らかの価値が得られ、システムの品質が向上し、システムを開発および保守する能力が向上することが重要です。
おそらく、ライブ データベースをテスト データベースにコピーしたくないことをお勧めします。単体テストを一貫して実行するための適切なデータがライブ データベースに含まれているという保証はおそらくありません。単体テストでは、コードが機能することをテストする必要があります。ライブ データベースに適切なデータが含まれていることをテストしてはなりません。これは、ライブ データベースがライブであるため、ユーザーが内容を変更してテストが失敗する可能性があるためです。 .
単体テストコード自体は、単体テストを作成するシナリオをシミュレートするために必要なデータをテストデータベースに入力する必要があります。数年前、Ruby on Rails コードをいじりました。そのためのテストフレームワークには、偽のデータでデータベースをセットアップするテストクラスがあり、クラスからの複数のテストメソッドがそのデータに対して実行されるように記述され、ティアダウンメソッドがデータベースからデータを消去します。したがって、さまざまなテスト クラス (またはフィクスチャと呼ばれることもあります) が特定のデータ セットアップに対して実行されます。つまり、実行するテスト ケースごとに作成するのではなく、同じデータ セットアップに対して多数のテストを実行できます。テストごとにデータを設定すると、テストの実行が遅くなり、テストが実行されるのを待つのに飽きて、気にするのをやめてしまう可能性があります。