比如对某个新增的dao进行单元测试,那岂不是要真的往数据库中插入一条数据?每次单元测试都新增一条数据?
还有,查询操作,返回一个List的对象集合,怎么判断数据是准确的呢?
对于单元测试,大家有什么好的实践方案吗?
PHP中文网2017-04-18 10:58:06
単体テストでデータベースを使用する場合は、2 つのオプションを検討できます:
単体テストとして長期テスト データベースを構築し、テストの再現性を確保するために、テストの開始前または完了後に無関係なデータを消去します。欠点は、複数の人が同時に単体テストを実行すると失敗する可能性があることです。
インメモリ データベース (H2 など) を使用します。利点は、無関係なデータを消去する必要がないことです。欠点は、データベースの初期化プロセス (テーブル作成ステートメントなど) を単体テストに含める必要があることです。初期化が複雑な場合、単体テストの効率にも影響します。
クエリ結果の検証方法については、基本的にはビジネスロジックに基づいています。たとえば、ここで単体テストを実行すると、クエリは確実に 27 レコードを返すため、返されるレコードの数が 27 であるかどうかを確認します。それ以外の場合は、自分でデザインすることもできます。