ホームページ > バックエンド開発 > Golang > gorm と sqlmock を使用したテスト

gorm と sqlmock を使用したテスト

王林
リリース: 2024-02-05 21:39:09
転載
1173 人が閲覧しました

使用 gorm 和 sqlmock 进行测试

質問内容

sqlmockとgormを使用してgoラムダ関数のテストを書こうとしています。

これは私がテストしたい関数です:

リーリー

これは私のテストです:

リーリー

自分の何が間違っていたのかわかりません。 sqlmock を初めて使用します。いくつかの場所を読んだところ、コードは良さそうですが、結果が得られません。私のエラーは次のとおりです:

リーリー

私が何を間違えたかわかりますか?


正解


私が見た主な問題は、クエリの予想方法にあります。の代わりに ### リーリー

次のものが必要です:

リーリー

これにより、トランザクション (削除周りの

expectbegin および expectcommit) を使用していること、クエリが引数 (withargs) を使用して作成されていることをシミュレーションに伝えます。 、クエリは What is the return result (willreturnresult) であること

テーブル名 (mysql イディオム) とテーブル名 (通常、gorm は名前を複数形にするので、

availability を実装する tablename## の周りの `` など) など、他にもいくつかの微妙な変更があります。 #、またはデフォルトで可用性になります)。 これらすべての問題を確認する最善の方法は、エラーを返すように

docleanup

を変更し、テストで確認することです。 リーリー これを実行すると、現在のコードを使用すると、 が得られます。 リーリー

これは、sqlmock が begin を予期していないことを示しており、それを修正することで、この回答の最初の部分で対処した他のエラーを取得できるようになります。

以上がgorm と sqlmock を使用したテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート