問題タブ [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.

0 投票する
0 に答える
199 参照

c++ - GMock Wrap 関数内で値を設定中にメモリが破損する

GTest/GMock を使用して非仮想関数をモックする必要があるという要件があります。そのため、その関数をラップして、テスト スイートの "tst_def" ファイルにリンクしました。ラップされた関数の場合、整数は参照によって渡され、ラップされた関数内の任意の値をこの整数に設定すると、実行中にテストスイートが「メモリ破損でクラッシュ」します (セグメンテーション違反)。

重要な観察:
このクラッシュは、ラップされた関数内の整数に、作成時に割り当てられたものと同じデフォルト値を設定した場合には発生しませんが、他の値を割り当てた場合にのみクラッシュします。

編集

このラッパー関数に渡される value1 の初期値が 0 であるとします。

0 投票する
1 に答える
1468 参照

c++ - gmockを使用してpthread_createをモックする

を呼び出すメソッドがありますpthread_create(...)。の出力をモックして期待することは可能pthread_createですか?実際にスレッドを起動しませんか?

クラス全体がモックオブジェクトであり、テストケースの最後にオブジェクトを削除するとすぐにスレッドセグメントになるため、これを求めています。

0 投票する
1 に答える
1997 参照

unit-testing - whileループで関数にexpect_callを設定する方法は?

コード内の関数をテストするために、gmock、gtest フレームワークを使用しています。そして、テストされているメイン関数の側で呼び出される関数をモックしました。モック関数は無限 while ループにあり、成功した場合にのみ終了し、失敗した場合は keep がエラー メッセージを出力します。モック関数は次のようになります。

ここで、ソケット関数を失敗させてエラーを出力したいと考えています。私はエラーを印刷することができましたが、それは内部ループであるため、エラーメッセージを印刷し続けます。gtest が 1 回か 2 回で印刷を停止するように期待するにはどうすればよいですか。こんな期待を込めて

私は .Times(2) を入れてみましたが、うまくいきませんでした。

0 投票する
1 に答える
13946 参照

c++ - EXPECT_CALL で Google モックの EXPECT_THAT を使用しますか?

私はグーグルモックを使用しています。ドキュメントには、EXPECT_CALL または ON_CALL で EXPECT_THAT を使用できると書かれていますが、次のようなコードはコンパイルできないようです。

EXPECT_THAT はマクロであることを知っているので、そこに表示されるべきではないいくつかのステートメントに展開されます。では、「EXPECT_CALL で EXPECT_THAT を使用する」とはどういう意味ですか? どうやってするの?

ありがとう

0 投票する
1 に答える
1117 参照

unit-testing - GMock (0.8.0) でモック サービスを使用して Grails コントローラーをテストする

サービスのメソッドを呼び出し、リクエストとレスポンスを渡すコントローラーを持つ grails 2.1 アプリがあります。

このメソッドの単体テストを行いたいです。そして、GMock (バージョン 0.8.0) を使用してこれを行いたいので、これを試しました。

これは、リクエストに対する期待に失敗したと言って失敗します。

ただし、次のようにテストを記述した場合:

テストは問題なくパスします。私の知る限り、どちらも GMock 構文の有効な使用法ですが、なぜ最初のものは失敗し、2 つ目は失敗するのでしょうか?

乾杯、

0 投票する
2 に答える
1284 参照

unit-testing - 一般的なモック関数を gmock/gtest にラップする

私の gtest フレームワークでは、いくつかの関数をモックし、いくつかのテストケースを作成しました。そして、多くのテストケースで、同じモック関数を EXPECT_CALL で何度も使用したことがわかります。そこで、これらの共通モック EXPECT_CALL を 1 か所に配置して呼び出すだけで、行数が減り、テストケースがよりシンプルに見えるかどうか疑問に思っています。

それらを1つの関数に入れて関数を呼び出そうとしましたが、多くのコンパイルの問題が発生しました。誰でも何か考えがありますか?

0 投票する
1 に答える
168 参照

c++ - テストケースの登録を解除する方法と、特定のテスト ケースを Gtest に登録する方法

私たちが知っているように、gtets では、コントロールが見つかっTESTたりTEST_F機能したりするとregisters、. しかし、私の要件によれば、gtest がすべてのテストケースを登録した後、リストにあるかどうかを検索する必要がありますか? が存在する場合は、すべてのテスト ケースを登録解除し、見つかった のみを登録する必要があります。どうやってするか???仮定するtest casesgtesttestcasenametesetcasenametestcasename

で を検索し"testcasename3"ているとしregistered testcasenameます。そしてそれは利用可能です。ここで、すべてではなく、見つかったテストケースのみを gtest に実行させたい...

どうやってするか?

どんな答えでも大歓迎です

0 投票する
1 に答える
1445 参照

gmock - gmockマッチャーが参照により私の引数と一致しません

私は次のようなクラスにモック関数を持っています

のように嘲笑されています

私が設定したいくつかのデフォルトのアクションを設定します

テスト中の私のコードは呼び出します

しかし、1を返す代わりに、gmockは次のエラーを表示します。

operator ==オブジェクトに対して定義されていますbar。gmockがデフォルトのアクションを見つけられないのはなぜですか?

0 投票する
1 に答える
2079 参照

deadlock - モックがデフォルト値としてモックを返すと、フィクスチャの分解中に gtest がハングする

理解も解決もできない奇妙な動作を見つけました。タイプのいくつかの実際のオブジェクトを提供するファクトリー FooFactory がありますFooFoo私がモックしたオブジェクトのメソッド呼び出しをテストするには、呼び出しが期待できるオブジェクトを返すFooFactoryようにします。MockFooFactoryMockFoo

テスト (含まれていません) は正常に動作していますが、テスト後、MockFooFactory の分解中に gmock/gtest がハングします (ミューテックスの問題のようです)。正確には、デフォルトの ON_CALL を削除すると、Mutex の作成時に問題が発生します。

スマート ポインターに問題があるはずです。スマート ポインターを使用せずにバージョンをビルドすると、正常に動作します。しかし、私がテストしたソフトウェアは shared_ptr をスマート ポインターとして使用しているため、それらを取り除くことはできません。

エラーを再現するサンプルを次に示します。

誰かが同じ問題を経験したことがありますか、それとも解決策を持っていますか?

0 投票する
3 に答える
5147 参照

c++ - gmockを使用した11個のパラメーターを使用したモックメソッド

gmockを使用して、レガシーコードの依存関係をモックしています。クラスの1つには、11個のパラメーターを持つメソッドがあります。MOCK_METHOD11_WITH_CALLTYPEを使用してモックを作成しようとすると、このマクロが存在しないことがわかりました。gmockは、最大10個のパラメーターのみをサポートします。これについて何を提案しますか?このメソッドをダミーボディで実装しますか?または、マクロをコピーして拡張しますか?ありがとう!

PS、私は現在私のテストでこのメソッドをモックする必要はありませんが、おそらく将来的にそうする必要があります。

よろしくお願いします、