1

私のメインに、メインから呼び出される関数 func がある場合、googlemock を使用して EXPECT_CALL( no_class_here , func).Times(1) と言うことができますか?

no_class_hereは、クラス ::. に属していないことを示すスコープ演算子のようなものです。それがどのように機能するかはわかりませんが、関数の実装では

func が単なる静的関数であり、実行するためにクラスを必要としない場合、クラス内に func を配置したくありません...

あきらめて、テストしようとしているすべてのものを常にクラスに入れる必要がありますか? JUnit と JMock はすべて Java のクラスなので仕方がないことはわかっていますが、仮想関数だけでクラスから派生する機能は、おそらく googlemock がその作業を行うためのメカニズムであると思います...

4

1 に答える 1

1

そうではないと思います。フリー関数のモッキングに関する googlemock のドキュメントでは、インターフェイス クラスでフリー関数を同等の関数に置き換える方法が示されています。

テストを可能にするためだけに既存のコードを変更する価値があると考えるかどうかは、あなた次第です。特に、非メンバー関数をメンバー関数に変更するこの場合は特にそうです。

于 2012-04-18T10:14:37.513 に答える