zee*_*jan 5 testing tdd unit-testing googletest googlemock
我的类的构造函数是
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 对象的函数指针?
谢谢!!
小智 17
如果您想使用模拟来跟踪调用并设置返回值,您可以使用MockFunction
.
using testing::_;
using testing::MockFunction;
using testing::Return;
MockFunction<bool(const std::string&, const std::string&)> mockCallback;
EXPECT_CALL(mockCallback, Call(_, _)).WillOnce(Return(false)); // Or anything else you want to do
A( ...
mockCallback.AsStdFunction()
...);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5323 次 |
最近记录: |