mysql - Java 単体テストでは、データベース部分を変更するコードをどのようにテストしますか?
阿神
阿神 2017-05-17 09:59:03
0
3
581

さまざまなデータベースの CRUD 操作の場合、対応する単体テストを作成する必要があります。検索にはそれほど問題はありませんが、追加、削除、変更には問題があり、コードは本番環境で実行されているため、実質的に変更することはできません。

今思いつくのは、開発用データ用のデータベースを本番環境のデータベースとは別に作成するという解決策なのですが、これがちょっと面倒です。 企業の実際の開発プロセスでは、データベースに対して変更が必要なコードの単体テストは一般的にどのように行われますか?

Imockito の概要を簡単に調べましたが、良い解決策が見つからなかったようです。この分野に関して何か提案や情報をお勧め​​できる人はいますか?

注:IBM コミュニティで単体テストの概要を確認しました:

単体テストは実行が簡単である必要があります。単体テストの実行には、構成などの面倒な操作が必要であってはなりません。単体テスト コードにデータベースやネットワークなどへのアクセスが含まれている場合、そのテストは真の単体テストではありません。

1 つの理論では、

単体テストでは実際のデータベースに接続することは許可されていないため、すべてのデータベース操作はモックでなければなりませんでは、コードのデータベース部分はどのようにテストされるべきでしょうか?

阿神
阿神

闭关修行中......

全員に返信(3)
伊谢尔伦

単体テストはh2を使用して実行できます。一般的に、エンタープライズレベルの開発には独自のテスト環境があり、データベースのテストには大きな問題はありません

いいねを押す +0
为情所困
  1. これは単体テストではなく、統合テストです

  2. h2 などのインメモリ データベースは使用しないでください。これらのデータベースの構文と機能は運用データベースとは異なり、テストが失敗する可能性があります

  3. Spring を使用している場合は、Spring の公式ドキュメントの統合テストに関する章を参照してください

いいねを押す +0
phpcn_u1582

この問題を解決するには、インメモリ データベースを使用します。インメモリ データベースを導入した後、コード内で ddl スクリプトと必要な初期化データ dml スクリプトを管理する必要があります。単体テストを実行するたびにインメモリ データベースを起動し、ddl スクリプトと dml スクリプトをフラッシュします。単体テスト ロジックを実行するための推奨される管理データベース スクリプト ツールには、Flyway と liquibase
が含まれます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!