問題タブ [gmock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - gmock の使用 - gmock_actions.h を含める方法
私はc ++でTDDを学んでいます。「Jeff Langr - テスト駆動開発による最新の C++ プログラミング」の提案による。Google Mock フレームワークを使用します。gmock-1.7 フォルダーの README ファイルに従いました。gmock_test も実行しましたが、すべてのテストケースは「グリーン」です。
その後、そのようにgmockをインポートしようとする小さなプログラムを書きました:
g++ main.cpp
私に返してくださいgmock/gmock-actions.h: No such file or directory
私は何をする必要がありますか ?何が起こったのか教えてくれたらどうもありがとう。
c++ - gmock が関数に値を渡すことができませんでした
プロジェクトで gmock を使用していますが、モック関数のカスタム参照変数を設定する際に問題が発生しました。SetArgPointee と Return を使用しましたが、関数は戻り値しか取得できません。
私のモック関数は
私のテストは次のようなものです:
私のテスト機能では
テストを実行すると、thr hr は S_OK で、len はまだ 0 であり、len は値を取得できません。値を取得する理由と方法を教えていただければ幸いです。
c++ - MFC アプリケーションで gmock を使用する方法
管理されていない mfc アプリケーションがあります。gmock を使用して、そのための単体テストを統合したいと思います。すべてのインクルード、ライブラリを追加しました。
しかし、どうすればテストの実行を開始できますか?
他のケースでは、main メソッドを使用してテストを実行していることを知っています。
ただし、mfc アプリケーションには main メソッドがなく、InitInstance メソッドがあるためです。テストの実行を開始するにはどうすればよいですか?
c++ - モック化されたオブジェクトを別のオブジェクトに渡す GMock と、スタブ化されたメソッドの呼び出しは、まだ実際のロジックを呼び出しています
モックされたオブジェクトを別のオブジェクトのメソッドに渡して呼び出そうとしていますが、実際のメソッドを呼び出すのと同じ結果が得られます。
fooa.h - これは実際のクラスです
fooa.cpp
mockedfooa.h - モック化された fooa のバージョン
Calculator.h このクラスは FooA クラスからメソッドを呼び出します
そして私の主な機能
出力は
そのため、スタブ化されていても doCalc は実際のメソッドを呼び出しているように見えます。
そして私の質問は次のとおりです。モックされたオブジェクトを doCalc メソッドに渡すときに、スタブ化されたメソッドを呼び出さないのはなぜですか?
c++ - Google Mock で引数参照を一致させる方法
私はグーグルモックの新人です。引数の参照を一致させる方法について 1 つ質問があります。ここにコードがあります
また、一致するように次のことを試しましたSetParameter()
:
と
と
これら2つのコードは両方とも例外を引き起こす可能性があります...Parameter&
関数内の引数参照を一致させる方法を教えてもらえますSetParameter()
か?
c++ - ポインターの std::list へのポインターを返すときの ImplicitCast_ エラー
だから私はこの小さな問題を抱えています。モックしようとしているクラスがありますが、エラーが発生しています。問題のメソッドは、オブジェクト ポインターの std::list へのポインターを返しています。以下は、問題を再現するコードです。
これをコンパイルすると、次のエラーが発生します。
誰かがこれを引き起こしていることを教えてもらえますか? 私は何を間違っていますか?