従来の C API のモック オブジェクトを作成したいと考えています。その効果的な方法とは?スタブクラスを作成するとこれに役立つ可能性があることもどこかで読んだことがありますが、ここでも、推奨されるアプローチが何であるかわかりません。最初にスタブ クラスを作成し、その上にモック クラスを作成しても問題ありませんか? ご意見をお聞かせください。
-ブペシュ
従来の C API のモック オブジェクトを作成したいと考えています。その効果的な方法とは?スタブクラスを作成するとこれに役立つ可能性があることもどこかで読んだことがありますが、ここでも、推奨されるアプローチが何であるかわかりません。最初にスタブ クラスを作成し、その上にモック クラスを作成しても問題ありませんか? ご意見をお聞かせください。
-ブペシュ
Google Mock は C スタイルの関数を「フリー関数」と呼んでいます。それらは、最初にインターフェースを作成することでモックできます。これは、C++ の単なる抽象クラスです。
彼らが与える例:
class FileInterface {
public:
...
virtual bool Open(const char* path, const char* mode) = 0;
};
class File : public FileInterface {
public:
...
virtual bool Open(const char* path, const char* mode) {
return OpenFile(path, mode);
}
};
を直接呼び出す代わりに、テストで使用するためにモックできるOpen(...)
のインスタンスを使用します。FileInterface
モックはスタブのように使用できます。オブジェクトに期待を設定しないでください...ON_CALL
メソッドのみを使用してください。