我刚刚开始进行单元测试(使用BOOST框架进行测试,但对于模拟我必须使用Google Mock)我有这种情况:
class A
{
static int Method1(int a, int b){return a+b;}
};
class B
{
static int Method2(int a, int b){ return A::Method1(a,b);}
};
Run Code Online (Sandbox Code Playgroud)
所以,我需要创建模拟类A,并使我的类B不使用A类中的真实Method1,而是使用mock.
我不知道该怎么做,我找不到类似的例子.
我的类的构造函数是
A( ...
std::function<bool(const std::string&, const std::string&)> aCallBack,
... );
Run Code Online (Sandbox Code Playgroud)
我想用 EXPECT_CALL 来测试它。这个回调来自另一个 B 类。我创建了一个 Mock 像
class BMock : public B
{
MOCK_METHOD2( aCallBack, bool(const std::string&, const std::string&) );
}
Run Code Online (Sandbox Code Playgroud)
然后我试过了
B *b = new B();
std::function<bool(const std::string&, const std::string&)> func =
std::bind(&B::aCallBack, b, std::PlaceHolders::_1, std::PlaceHolders::_2);
Run Code Online (Sandbox Code Playgroud)
它仍然不起作用。如何获取 gmock 对象的函数指针?
谢谢!!