谷歌测试:如何EXPECT_EQ不可打印的ASCII值

Google Test: how to EXPECT_EQ non printable ASCII values

本文关键字:打印 ASCII EQ 测试 如何 EXPECT 谷歌      更新时间:2023-10-16

在我的测试中,我在一个字符上针对一些字符(如"a"、"b"等)设置了一个EXPECT_EQ()……到目前为止还不错。

现在我应该针对不可打印的ASCII字符(0xFE)进行测试。我的字符被定义为"char",所以每次对文字0xFE的直接测试都会失败!

char a;
a = 0xFE;
EXPECT_EQ(a, 0xFE);   <-- fail!!!

您将254分配给char a。正如你所知,char足够宽,可以容纳它没有截断,但它超过了char[0127]的正范围。它变为负值,积分值为-2。因此,它整体上不等于254则CCD_ 4失败。

因此,在EXPECT_EQ中,必须坚持与unsigned进行比较a:中的整数值

char a;
a = 0xFE;
EXPECT_EQ((unsigned char)a, 0xFE);