如何验证两个char *是否在Google Mock中相等?
How can I verify if two char * are equal in Google Mock?
假设我有一个这样的Mock:
class MockSocket : public Socket
{
public:
MOCK_METHOD1(Write, bool(Packet *p));
};
并且我想测试是否使用满足以下条件的对象调用Write方法:
- 1)当我在这个对象上调用get_QL()函数时,我收到0作为a返回值
- 2)当我调用get_MAC()函数时,我收到一个uint8_t*我知道长度为6,但没有字符串终止符。
我如何在GMock中编写第二个条件?我试过这样做,但第二个属性不能正常工作。
EXPECT_CALL(ms, Write(AllOf(Property(&ESMCPacket::get_QL, 0), Property(&ESMCPacket::get_MAC, (mmac_source1))))).Times(1);
我不确定gMock是否有你需要的内存匹配器,但写一个自定义的是微不足道的:
MATCHER_P2(MatchesMemory, data, size, "") {
return memcmp(arg, data, size) == 0;
}
EXPECT_CALL(
ms,
Write(AllOf(Property(&ESMCPacket::get_QL, 0),
Property(&ESMCPacket::get_MAC, MatchesMemory("abc ef", 6))))
.Times(1);
相关文章:
- 如何使用Google Mock来模拟gettimeofday()
- gmock / google-mock发出警告,并且通过模拟异常未通过测试
- 如何期望通过使用Google Test(Mock)以特定频率调用函数
- Google Mock:在目标类的构造函数中实例化的模拟私有变量成员
- Google Mock Expect_call将退休另一个期望
- Google-Mock 一个已经声明的方法
- Google Mock - 使用 CoTaskMemFree 时,测试返回没有结果
- 如何在内联回调函数中使用EXPECT_EQ和其他Google Mock语句
- C Google Mock -Expect_Call() - 期望在不直接调用时无法正常工作
- C++ 使用Google Mock进行高性能单元测试
- 我用纯虚拟方法和Google Mock做错了什么
- 使用 Google C++ 模拟框架 (Google Mock) (V1.5) 将任意参数传递给调用的方法
- 使用 google mock 模拟转换运算符 int()
- 如何使用Google Mock避免指针
- 如何将Given/Whin/Then模式与Mock一起使用(Google Mock)
- 如何使用Google Mock更改指定对象的类型
- 避免匹配.在Google Mock中多次WillOnce
- Compiling Google Mock for iOS
- 使用Google Mock实现Mock方法
- 使用Google Mock来模拟在客户端代码中复制的对象