ホームページ >バックエンド開発 >Golang >gomock は、メインメソッドの最初のメソッドを除くすべてのサブメソッドの欠落している呼び出しを提供します

gomock は、メインメソッドの最初のメソッドを除くすべてのサブメソッドの欠落している呼び出しを提供します

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB転載
2024-02-08 22:18:091225ブラウズ

gomock 为除主方法中的第一个之外的所有子方法提供缺少的调用

php Xiaobian Strawberry は gomock を紹介します。これは、最初のメソッドを除くメイン メソッド内のすべてのサブメソッドの欠落している呼び出しを提供できる強力なテスト ツールです。これは、gomock を使用してサブメソッドの動作をシミュレートし、メイン メソッドの機能をより適切にテストできることを意味します。 Gomock は非常に使い方が簡単で、モック オブジェクトの作成と構成、および予想される呼び出し値と戻り値の設定が簡単です。単体テストでも統合テストでも、gomock はより適切なテストと検証に役立ちます。初心者でも経験豊富な開発者でも、gomock は検討して使用する価値のある優れたツールです。

質問の内容

ユーザーに OTP メッセージを送信する責任を負う go メソッドがあります。これは、4 つの内部メソッド (サブメソッドについて話しています) RemoveOTPGetOneTimePassCodeSaveOTP、および SendOTP を呼び出します。

ファイル名: user_usecase.go

リーリー

テスト ケース ファイル: user_usecase_test.go および単体テスト ケースのエラー メソッド

リーリー

テスト ケースの実行中、RemoveOTP に対してエラーはスローされませんが、残りの 3 つのメソッドが表示されます。これは正確なエラーです

リーリー

すべてのサブメソッドが 1 回呼び出されると確信しているため、AnyTimes() のようなソリューションは使用したくありません。これに対する理想的な解決策は何でしょうか?ぜひご提案ください。

回避策

問題は、RemoveOTP() 関数がエラーを返すため、コードが他のメソッドを実行しないことです。 (名前が示すように、不在着信)

AnyTimes() は 0 回から何度も実行できるため、正常に実行されます。

すべてのメソッドが 1 回実行されることを本当にテストしたい場合は、エラーを返さずにすべての関数をモックして、すべてのコードを実行できるようにすることができます

以上がgomock は、メインメソッドの最初のメソッドを除くすべてのサブメソッドの欠落している呼び出しを提供しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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