使用 GTest 测试位集

Test Bitset using GTest

本文关键字:测试 GTest 使用      更新时间:2023-10-16

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

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

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

AllOf()匹配器旨在组合其他匹配器,如参考文档中所述。
Eq(true)需要flags自动铸造操作员进行bool(或至少int(,这实际上不适用于std::bitset<>。这就是您的方法无法编译的原因。

你可以很容易地做一些类似的事情

bitset<25> flags;
// ...
ASSERT_TRUE(flags.all());

该功能可从 std::bitset<> .


更多选择:

ASSERT_TRUE(flags.any());

ASSERT_TRUE(flags.none());

bitset<25> expected_value("1100111001110011100111001");
ASSERT_EQUAL(expected_value,flags);