Существует ли какой-либо шаблон для тестирования классов, которые используют классы, содержащие методы шаблона, в publi c api? Я знаю, что в динамическом c интерфейсе моделирования полиморфизма это решение выглядит следующим образом:
struct Interface {
virtual void foo() = 0;
virtual ~Interface() = default;
};
class TestedClass {
public:
TestedClass(Interface& i) {}
// ... rest of the class
};
struct IMock : public Interface {
void foo() override {}
};
void test() {
IMock bar;
TestedClass baz(bar);
}
Но что я могу сделать с чем-то, как показано ниже? Есть ли идиоматический c способ проверить это?
struct Interface {
template<class T>
void foo() {
// do stuff depending on type
}
};
class TestedClass {
public:
TestedClass(Interface& i) {}
// ... rest of the class
// uses Interface foo with multiple types
};