私は経験豊富なプログラマーですが、まだ初心者です。私はいくつかのロギング テストを作成しており、これらの目的のために、 logsink
クラスのモックを生成しました ( mockgen
を使用)。その部分はすべて自動生成されるので問題ないと考えて良いと思います。
これは私のテストコードです:
リーリー しかし、「foo」ログが呼び出されないため、このテストは失敗します。コードを段階的に確認したところ、expect().do()
コードが期待どおりに呼び出され、true
が返されたことがわかりましたが、モック コードでは logger が発生します。 .sink.enabled()
の は false
として扱われます!
私は何を間違えたのでしょうか?秘密のスイッチが足りないのでしょうか?
なるほど、.do()
意図的に戻り値を無視していることがわかりました。コード内のドキュメントは次のとおりです:
リーリー
以上がGomock が期待値を返しませんでしたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。