問題タブ [hippomocks]
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.
winapi - HippoMocks - Win32 API 関数をモックする方法
HippoMocks のドキュメントには、Windows API 関数を含む C 関数をモックできると書かれていますが、その例は見つかりませんでした。Windows API関数のモックの例を誰か教えてください。
c++ - HippoMocks-std::vectorを使用したモックメソッドのコンパイルに失敗する
HippoMocks(Cygwin、GCC 4.5.3、CppUnit)を試してインターフェイスをモックしているときに、メソッドの1つがコンパイルの失敗を引き起こしています。さらなるトリアージは、引数としてstd::vectorを使用するモックメソッドのみが失敗することを示しています。
例えば
どこ
コンパイラエラー:
c++ - HippoMocksはモックを破壊することを主張します
m_EmpSvcMockがHippoMockによって内部的に破壊されるのを防ぐ方法は?モックをshared_ptrに渡すと、両方がモックを破棄します。
編集-回答:
c++ - HippoMocks による参照による戻り値のモック
int (メソッドの戻り値の型) の代わりに引数を介して std::vector を返すようにモックするにはどうすればよいですか?
また、複数の ref 引数がある場合はどうなりますか?
c++ - HippoMocks-unique_ptrを返す関数をモックします
私は現在、unique_ptrを返すインターフェイスのモックに成功していません。たとえば、与えられた
Return
実装がunique_ptrのコピーを作成するため、これはコンパイルに失敗します
そして期待はunique_ptrを返そうとします
返された参照に関する同様の問題についてDo
提案されているように、私は試しました。
また、unique_ptrを生成する独自の記述を試みましValueWrapper<T>
たが、どこかで値が常にコピーされます。今、私はアイデアを使い果たしました。
c++ - Hippo Mocksで異なる戻り値を持つ複数の予想される呼び出しに対してモックを再利用できますか?
Hippo Mocks を使用して大成功を収めていますが、適切に設定する方法がよくわからないという状況があります。テスト中のコードは次のようになります。
Whereは、純粋仮想メソッドを持つ をIRecord::at()
返します。およびのモック バージョンでコードをテストしようとしています。IColumn&
getValue()
Irecord
IColumn
私はうまく期待を設定することができfirstName
ます:
IColumn
しかし、次の期待のためにモックを再利用したいと思いlastName
ます。
しかし、これを実行すると、Hippo Mocks は両方のgetValue()
呼び出しに対して "John" を返します。
チュートリアルに従って、「firstName」と「lastName」の呼び出しの順序を制限しようとしました。
しかし、私はまだ両方のgetValue()
呼び出しで「ジョン」を受け取ります。
Q:インターフェイスを再利用して、IColumn
Hippo Mocks に必要な呼び出しごとに異なる値を返すように指示することはできますか? それとも、パラメーターごとgetValue()
に個別のモックを作成するのに行き詰まっていますか? IColumn
注: 私の実際の実装には 2 つ以上のパラメーターがあるため、IColumn
モックを再利用すると、各単体テストのセットアップが大幅に削減されます。
c++ - HippoMocks - C++ で COM インターフェイスをモックしますか?
Hippo Mocks の最新バージョン(Git リポジトリ内) には、COM インターフェイスのサポートが追加されているようです。ADO 接続オブジェクトをモックしてみました。適切にビルドするには、Hippo Mocks の微調整が必要でした (コードの COM バージョンは、Hippo Mocks の残りの部分の変更に対して更新されていないようです)。現在ビルドしていますが、次のテストは失敗します。
スマート ポインターが最初に行うことはAddRef
、インターフェイスです。私のモックは参照カウントを気にするべきではないので、単純に を返す呼び出し期待値を追加します1
。AddRef
ただし、呼び出されるとすぐに aHippoMocks::NotImplementedException
がスローされます。
Hippo Mocks を使用して COM インターフェイスをモックすることに成功した人はいますか?
c++ - Hippomocks: ExpectCall() に渡される引数の一部のみを期待する方法は?
モッキング フレームワークHippomocksでは、渡された引数を期待値内でチェックすることができます。例えば:
渡された引数の一部のみをチェックする可能性はありますか? ???の代わりに何を書けばいいですか?次のコードで?
参考までに: 使用例は、 someObjet_p が内部的にバッファを作成してその中のデータを読み取り、それを Class::Method に渡すことです。第一に、someObject_p がどのバッファにデータを入れたいかは気にしません。第二に、someObject_p の内部にアクセスして With() に渡す必要がありません。これは非常に合理的です。
注:ExpectCallを利用しているため、質問にC++のタグを付けましたが、フラット関数のExpectCallFuncにも同じことが当てはまると思います。
2 番目の注意: Hippomocks は、"Match()"、"getArgs()"、"assignArgs()"、および "matchesArgs()" という名前の期待値のメソッドを提供しますが、それに関するドキュメントは見つかりませんでしたし、意図されているかどうかもわかりません(私のユースケースでは)使用するかどうか。
c++ - Hippomocks の基本クラス メソッドのモック
A
次のクラスとがあるとしましょうB
:
単体テストでは、 のみをテストします。つまり、呼び出すと実際に が呼び出されることをHippomocksB
を使用してテストします。B::Init()
DoSomethingSpecial()
A
からのすべての呼び出しを期待したくないので、次のInit()
ように記述します。
最後の期待値は未処理の例外を引き起こしますが、呼び出しているメソッドと期待したい基本バージョンを混在させているので問題ないと思います。b_p
へのキャストA
は役に立ちません。
その特定のユースケースに対する解決策はありますか?