2011-07-20 29 views

答えて

7

私は最近、最近のプロジェクトのユニットテストとモックのフレームワークを検索し、Google Mockに行ってきました。それは最高のドキュメンテーションを持っており、(私はまだ非常に複雑なモックオブジェクトを作成していませんが)かなりよく機能しているようです。当初はboost::testの使用を考えていましたが、代わりにGoogle Testを使用しました(別のテストフレームワークを使用していてもGoogle Mockの前提条件だと思います)。それはまた良い文書を持ち、私が期待した機能のほとんどを持っています。

2

GoogleMockには、another frameworkで使用するセクションがあります。

+0

実際にはメモリリークの傾向があり、回避策が必要です。http://stackoverflow.com/questions/38890959/initgooglemock-causes-memory-leak-with-boosttest?noredirect=1#comment65142935_38890959 – Ioanna

6

お試しくださいTurtle

+0

タートルの利点? –

+0

これはboost :: testと簡単に統合されています。boost :: testプロジェクトでgmockを使用するのに必要な回避策はすべて必要ありません(例えばhttp://stackoverflow.com/questions/38890959も参照してください)。/initgooglemock-causes-memory-leak-with-boosttest?noredirect = 1#comment65142935_38890959)。 – Ioanna

6

Hereブーストテスト付きGoogle Mockの使用例があります。私は他のBoost librariesを頻繁に使うので、私はブーストテストを好む。

7

Fake-Itは、最新のC++ 11の機能を使用して表現力豊かな(しかし非常に単純な)APIを作成します。 FakeItでは、メソッドを再宣言する必要もなく、モックごとに派生クラスを作成する必要もなく、boost :: testの組み込みが組み込まれています。探索するより多くの機能がありますが

struct SomeInterface { 
    virtual int foo(int) = 0; 
}; 

// That's all you have to do to create a mock. 
Mock<SomeInterface> mock; 

// Stub method mock.foo(any argument) to return 1. 
When(Method(mock,foo)).Return(1); 

// Fetch the SomeInterface instance from the mock. 
SomeInterface &i = mock.get(); 

// Will print "1" 
cout << i.foo(10); 

:ここ はどのように偽の-ことです。先はgive it a tryです。