0

在我的办公室里,我被要求在数据库连接检查和测试的基本领域写一些测试用例,所以这是我们将要实施的一项新技术,所以没有人要求帮助我,他们要求它为我做的就是写带有 soci 的 C++ 的 Gtest(谷歌测试),

所以现在我有这样的测试用例,

无论表是否被丢弃,

所以我写了一些这样的代码,

TEST(CheckNull, DropTable) 
 {
    bool output = true;
    session sql(oracle, "service=LOCAL user=ROOT password=123");
    string query = "drop table GTestAutomation";
    sql<<query;
    EXPECT_EQ(true,output);
}

现在我想检查我的 sql 语句是否成功执行,我可以做这样的事情吗?

if(sql<<query)
{
  output = true ;
}
else
{
  output = false;
}

这样我就可以EXPECT_EQ(true,output);像这样检查我的状况。

需要帮助,如果您不知道正确的做事方式或回答请不要发表等评论。

谢谢

4

1 回答 1

0

如果你的语句没有成功执行,soci 会抛出一个soci::soci_error异常,你可以捕获它。所以你可以这样写:

TEST(CheckNull, DropTable) 
 {
    bool output = true;
    session sql(oracle, "service=LOCAL user=ROOT password=123");
    string query = "drop table GTestAutomation";
    try{
        sql<<query;
    } catch (soci::soci_error &e) {
        output = false;
    }

    EXPECT_EQ(true,output);
}
于 2015-08-11T09:54:55.520 回答