次のテストがあります。
TestGet(): _interface(), _db(_interface)
{
_interface.get = mockGet;
}
このクラスをテストするときに使用されます。
class DB: public IDB
{
public:
explicit DB(Interface_T& interface):
_interface(interface)
{
}
...
private:
Interface_T _interface;
};
Interface_T は、構造体に実装され、C API から渡された C インターフェイスです。DB クラスを C インターフェイスのラッパーとして使用したいと考えています。
ただし、DB はインターフェイス オブジェクトをそのメンバー _interface にコピーすることに注意してください。したがって、次の行:
_interface.get = mockGet;
これは、テスト クラスを作成したときの意図でしたが、DB オブジェクトの観点からは効果がありません。このエラーを修正するには、TestGet() をどのように書き直しますか? DB クラスのクライアントに、渡された値をコピーすることをどのように提示しますか?