我有一个小类:Googlemock:如何验证对象中数组中的元素?
struct Command
{
uint8_t cmdId;
uint8_t len;
uint8_t payload[MAX_PAYLOAD];
};
我想验证只使用googlemock期望有效载荷的前两个元素。我无法使用ElementsAreArray,因为它会检查有效负载的长度和期望值是否相同。到目前为止,我有这样的期望:
Command cmd;
cmd.cmdId = 0xD3;
cmd.len = 2;
cmd.payload[0] = 'm';
cmd.payload[1] = 'l';
EXPECT_CALL(mockQueue,
sendFromIsr(Pointee(AllOf(
Field(&Command::cmdId, Eq(0xD3)),
Field(&Command::len, Eq(2)),
//Field(&BirdCommand::payload, ElementsAreArray(cmd.payload, 2)) !<-- Doesn't work
))))
.WillOnce(Return(true));
任何想法?模拟类看起来是这样的:
template <typename T>
class MockQueue : public Queue<T>
{
public:
MOCK_METHOD1_T(sendFromIsr, bool(T &item));
};
sendFromIsr方法的签名是什么? – 2011-02-25 13:20:16
@VJo我添加了模拟定义 – mikelong 2011-02-25 13:24:15