Как протестировать приватные методы, при этом оставив их приватными?
Была мысль создать класс наследник и переобъявить там методы публичными и использовать их в тестах, но насколько я понял это не работает.
class A {
public:
A() {}
void setPublic() { cout << "A: setPublic" << endl; }
protected:
virtual void setProtected() { cout << "A: setProtected" << endl; }
private:
};
class B: public A {
public:
B() : A() {}
void setProtected() override;
};
int main() {
B b;
b.setPublic();
b.setProtected(); // ошибка
return 0;
}