即使 EXPECT 失败,测试中的其余代码是否也会执行?
Is the rest of the code in a test executed even if an EXPECT fails?
我正在尝试让自己进入测试驱动开发,我对框架有疑问 Google 测试:
如果我有这样的测试
TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
EXPECT_EQ(data2, obj->attr);
delete obj;
}
即使上面的 EXPECT 失败,我释放已用内存的最后一行是否会执行?
如果不是,我应该使用什么宏来获得我想要的结果(即测试两个事物是否相等,但仍然执行内存清理)?
我记不清 google 测试是否在第一次失败后继续处理测试,但我认为确实如此。
要测试只需添加一个虚假测试并查看它是否执行
TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
EXPECT_EQ(data2, obj->attr);
int i = 5, j=5;
EXPECT_EQ(i, j);
delete obj;
}
如果对第二个测试进行评估,那么您知道测试将在失败后继续。如果它不评估第二个 expect_eq 那么你需要在堆栈上制作一个本地副本然后删除 expect_eq
之前的指针
TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
auto objAttr= obj->attr;
delete obj;
EXPECT_EQ(data2, objAttr);
}
我正在尝试让自己进入测试驱动开发,我对框架有疑问 Google 测试:
如果我有这样的测试
TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
EXPECT_EQ(data2, obj->attr);
delete obj;
}
即使上面的 EXPECT 失败,我释放已用内存的最后一行是否会执行?
如果不是,我应该使用什么宏来获得我想要的结果(即测试两个事物是否相等,但仍然执行内存清理)?
我记不清 google 测试是否在第一次失败后继续处理测试,但我认为确实如此。 要测试只需添加一个虚假测试并查看它是否执行
TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
EXPECT_EQ(data2, obj->attr);
int i = 5, j=5;
EXPECT_EQ(i, j);
delete obj;
}
如果对第二个测试进行评估,那么您知道测试将在失败后继续。如果它不评估第二个 expect_eq 那么你需要在堆栈上制作一个本地副本然后删除 expect_eq
之前的指针TEST(SampleTest1, check_and_delete) {
MyClass* obj = func(data);
auto objAttr= obj->attr;
delete obj;
EXPECT_EQ(data2, objAttr);
}