【发布时间】:2012-06-07 11:17:01
【问题描述】:
我正在为某些类编写一些单元测试。这些类使用另一个comms_client 来执行网络通信。例如,comms_client提供了一个send方法,它接收一个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 库提供自定义谓词或类来比较预期参数和实际参数?
【问题讨论】:
标签: c++ unit-testing boost googlemock