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

gorm と sqlmock を使用したテスト

王林
王林転載
2024-02-05 21:39:091167ブラウズ

使用 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 までご連絡ください。