使用GTest测试Bitset

时间:2014-12-17 18:48:15

标签: c++ googletest bitset

如何使用gmock和gtest测试bitset中的每个元素是否具有相同的值。我正在寻找下面没有编译的东西

bitset<25> flags;
ASSERT_THAT(flags, AllOf(Eq(true)));

1 个答案:

答案 0 :(得分:2)

  

&#34;如何使用gmock和gtest测试位集中的每个元素是否具有相同的值。&#34;

AllOf()匹配器用于组合其他匹配器,如reference documentation中所述。
Eq(true)要求flags bool(或至少int)的bitset<25> flags; // ... ASSERT_TRUE(flags.all()); 自动投射操作符,std::bitset<>实际上不可用。这就是你的方法无法编译的原因。

您可以轻松地执行类似

的操作
ASSERT_TRUE(flags.any());

该功能可从std::bitset<>获得。


更多选择:

ASSERT_TRUE(flags.none());

bitset<25> expected_value("1100111001110011100111001");

ASSERT_EQUAL(expected_value,flags);

{{1}}