我正在为某些类编写一些单元测试。这些类使用另一个类comms_client
来执行网络通信。例如,comms_client
提供一个send
接收参数 a 的方法boost::shared_array
:
class comms_client
{
...
public:
void send(boost::shared_array<boost::uint8_t> const & buffer, size_t size) = 0;
...
};
为了测试类发送的内容,我想创建一个模拟类,它允许我检查发送的数组的内容是否正确。模拟类看起来像
class comms_client_mock : public comms_client
{
...
public:
MOCK_METHOD2(send, void(boost::shared_array<boost::uint8_t> const & buffer, size_t size));
..
};
不幸的是,我还没有找到将期望放在具有这种类型的参数中的方法。我尝试使用,testing::ElementsAreArray
但它会引发编译错误。是否有一个函数可用于将期望放在具有此类类型的参数中?您能否为 gmock 库提供自定义谓词或类来比较预期参数和实际参数?