ホームページ >バックエンド開発 >Golang >Gorm の列の順序が異なるためテストが失敗する

Gorm の列の順序が異なるためテストが失敗する

王林
王林転載
2024-02-10 15:20:10443ブラウズ

Gorm 不同的列顺序和测试失败

php エディタ Xinyi は、Gorm に関する問題を紹介します。Gorm を使用してデータベース クエリを実行すると、列の順序が異なるとテストが失敗する可能性があります。これは、Gorm がクエリを実行するときに、構造内のフィールドの順序に基づいて SQL ステートメントを生成するためです。クエリで特定の列の順序を指定しても、構造内のフィールドの順序がそれと一致しない場合、テストは失敗します。したがって、データベース クエリに Gorm を使用する場合は、この問題を回避するために、構造内のフィールドの順序がクエリ内の列の順序と一致するように注意する必要があります。

質問の内容

私のコードには次のモデルがあります:

リーリー

私は gorm.DB 構造の CreateInBatches メソッドを使用しています。

単体テストには go-sqlmock を使用します。このモデルでは、挿入操作のみが実行されます。

リーリー

私のテスト ケースは、create_dateupdate_date の順序が異なるために失敗することがあります。

失敗の 1 つは

リーリー

私の使用例では、挿入内の列の順序は重要ではありません。すべてのシナリオを処理するには、単体テストでこれを処理するにはどうすればよいですか?

解決策

sqlmock ドキュメント ここを読んだ後、次の解決策が得られました。 リーリー

列と値を削除しました。私の場合、

create_date フィールドと update_date フィールドを気にする必要がないため、問題なく動作します。

以上がGorm の列の順序が異なるためテストが失敗するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。