問題タブ [turtle-mock]

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 投票する
2 に答える
8669 参照

c++ - Turtle で定数メソッドのモックを作成する

私は持っている、

この仮想 bool ret() const メソッドのモック クラスを作成するにはどうすればよいですか?

ありがとうございました!

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

c++ - 単一の MOCK_EXPECT でリターンとコール アクションの両方を呼び出す

1 回の MOCK_EXPECT 呼び出しで return と calls アクションの両方を同時に呼び出すことはできますか? お気に入り、

ありがとう

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

c++ - Turtle (モック フレームワーク) のコンパイル エラー

Turtle で簡単な例をコンパイルしようとしており (ブースト ユニット テスト フレームワークを使用)、Turtle 内からコンパイル エラーが発生しています。

Turtleには実際にはエラーがなく、それは私が間違っているか、互換性がないものだと思います。

どんな助けでも大歓迎です。


例:

** 抽出したので、Turtle の機能を使用することさえありません。含めるだけでエラーが発生します。

私が得るエラー:

コンパイル行: g++ test.cpp -o test -I ../turtle/include/ -lboost_unit_test_framework

使用しています: g++ (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) Turtle 1.2.4

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

c++ - Boost Turtle で演算子 float() に MOCK_NON_CONST_METHOD_EXT を使用する理由は?

私は、Turtle lib 1.2.4 と Visual Studio Express 2013 のコンパイラで Boost 1.46 を使用しています。MOCK には次のクラスがあります。

MOCK_NON_CONST_METHOD で operator() をモックすると:

構文エラー「演算子」などのコンパイラエラーがたくさんありました。しかし、MOCK_NON_CONST_METHOD_EXT でモックすると:

すべてが問題なく、完全に機能します。http://turtle.sourceforge.net/turtle/reference.htmlによると、EXT 接尾辞が付いた MOCKS は「可変引数マクロをサポートしていないコンパイラ」用ですが、私が使用しているものはサポートされています (これらの例で確認してください: http:/ /msdn.microsoft.com/en-us/library/ms177415.aspx )。ドキュメントの残りの部分は、このケースについてあまり明確ではありません。

ここで何が起こっているのか説明できる人はいますか?EXT サフィックス付きの MOCK バージョンを使用しないとエラーが発生するのはなぜですか?

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

c++ - boost::test を使用して C++ タートル モック ライブラリをセットアップする方法は?

boost::test フレームワークを使用してタートル モックライブラリをセットアップしようとしています。

私はそれを行う方法がわかりません、ドキュメントにもそれについては何も言われていません...

ライブラリソースを単純にboost/includeにコピーしようとしました。また、タートル ディレクトリをプロジェクトにコピーしてから、タートル フォルダーを指す CMake INCLUDE_DIRECTORIES ディレクティブを追加しようとしました。

カメを入れてみました...

次に、このエラーが発生しました:

(「Aucun fichier ou dossier de ce type」は、「このタイプのファイルまたはディレクトリはありません」を意味します)

どういう意味ですか ?どうすればいいですか?

ありがとう !

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

c++ - テストされたオブジェクト内で作成されたモック オブジェクトに期待する方法は?

次のようなクラスを単体テストしたい:

このクラスを単体テストしたいので、T のモック クラスを作成します。

次に、テスト ケースで使用します。

このオブジェクトを期待するにはどうすればよいですか? 私の最初のアイデアは、作成されMockTたすべてのインスタンスをコンストラクターから静的コンテナーに格納し、それらをコンテナーからデストラクタから削除することでした。これは、次のように、オブジェクトが使用されている場所とは異なる方法で作成された場合に機能します。

しかし、これにはクラスのインターフェースを変更する必要があり、実際にはそうしたくありません。他にできることはありますか?

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

c++ - Turtle Mock: モック化されたクラス メソッドが値を返す場合、MOCK_EXPECT は失敗します

私は長い間取締役会に潜んでいましたが、言うまでもなく、皆さんは最高であり、私の仕事を救ってくれたことに感謝しています。ここに投稿するのは初めてです。台無しにしないことを願っています。

Linux (Virtualized Ubuntu 16.04 amd_64) 用の C++ Boost アプリケーションを作成しており、モック フレームワークに Turtle Mock を使用し、テスト フレームワークに Boost Test を使用しています。依存性注入手法を使用するクラスをテストしようとするとき、呼び出しのシーケンスを検証できるように、テスト クラスに与える必要があるクラスをモックします。ここまでは順調ですが、ここで問題が発生します。MOCK_BASE_CLASS(MockAClass, AClass) を使用して、実際の AClass の仮想メソッドをオーバーライドし、新しい MockAClass を使用してテストを進めています。AClass に仮想メソッド int getTest(int) があり、MockAClass に MOCK_METHOD(getTest, 1, int(int)) があるとします。MockAClass オブジェクトの getTest メソッドの期待値と戻り値を設定し、メソッドを呼び出すと、期待値はほとんどの場合、MOCK_EXPECT(objMockAClass.getTest) です。at_least(1) は決して検証されません。戻り値を制御できますが、呼び出しが発生したため検証されません。これは、関数が値を返す場合にのみ発生します (たとえば、関数が void getTest(int) の場合、検証はパスします)。

システムで失敗する問題の簡単な PoC を添付します。

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

c++ - BoostTest: 保護されたメンバーにアクセスできません

私は BoostTest Framework (バージョン 1.57.0) と Turtle をモック ライブラリ (バージョン 1.3.0) として使用しています。テスト ケースでパブリック関数とプライベート関数にアクセスできますが、保護された関数にアクセスできません。Turtle の MOCK_BASE_CLASS を使用して、これらの保護された関数をモックすることができます。例:

RealObject.privateFunction() にはアクセスできるのに、RealObject.protectedFunction() にはアクセスできない理由がわかりません。

テスト フレームワークをセットアップしませんでしたが、BoostTest がプライベート メンバーにアクセスできる場所が見つかりません。