Предположим, у меня есть такой класс:
class A
{
public:
A(struct param1, struct params2, struct param3)
{
inst1 = Create_B(param1);
inst2 = Create_B(param2);
}
int some_method(std::string st1, std::string st2, double d1, int s1);
private:
virtual classB* Create_B(struct param)
{
return new classB(param);
}
protected:
classB *inst1;
classB *inst2;
};
Я хотел бы протестировать класс А и макетировать класс В. Как бы я go сделал это?
Я создал макет для класса A:
class MockA : public A
{
public:
MockA(struct c1, struct c2, struct c3) : A(c1, c2, c3) {};
virtual ~A() {}
MOCK_METHOD1(Create_B, B*(struct));
};
Но у меня проблемы с настройкой теста. Я не уверен, как настроить мой EXPECT_CALL, и когда я вызываю some_method, он должен вызвать метод с Class_B, не могу понять, как это проверить.
TEST_F(Test_Fixture, VerifyA)
{
/* Initialize */
MockA obj(param1, param2, param3);
}