我正在为ASSERT_DOUBLE_EQ寻找类似于ASSERT_EQ/ASSERT_NE的东西.
也许我在没有ASSERT_DOUBLE_NE的情况下错过了一个简单的方法吗?
我正在使用gtest为我的C ++程序创建单元测试。在我的测试中,我必须写很多这样的检查:
ASSERT_TRUE(myObject.IsValid());
EXPECT_EQ(myObject.GetSomeAttribute(), expectedValue);
Run Code Online (Sandbox Code Playgroud)
我必须写两个检查,因为如果我省略ASSERT_TRUE和myObject碰巧是无效的,则会myObject.GetSomeAttributre()导致调用崩溃。即使在测试中也不是很好。
我想要写的是这样的:
EXPECT_XXX_EQ(myObject.GetSomeAttribute(), expectedValue);
Run Code Online (Sandbox Code Playgroud)
这行代码应该与原始的两行大致相同(带有可选的奖励,如果myObject无效,将被报告,GetSomeAttribute()不会被调用,但是测试将继续运行)。
如何编写这样的自定义断言/期望?