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