【问题标题】:How to test a function which calls many functions... in GTest?如何在 GTest 中测试调用许多函数的函数?
【发布时间】:2022-07-31 18:19:29
【问题描述】:

我有一个函数叫做 onStartingExecute();

在术语中调用许多函数如下...

tt_init_device();
tt_init_port();
tt_init_pipeline();

....等等....


我写了一个GTest案例如下..

TEST_F(ICFusaTelltaleClientAppThTest,Test_onStartingExecute)
{
   FusaTelltaleClientAppTh AppThobj(1,"abc");
   AppThobj.onStartingExecute();
}

但是我的测试用例失败了……

请帮助我在这里编写测试用例... 我是 GTest 的新手……可能很简单。 :-)

提前致谢!

【问题讨论】:

  • 问题不清楚。你已经写了一个测试。它失败了,所以你必须修复代码,但那是代码的问题,而不是测试的问题。
  • 只看标题问题,所有功能都应包含在单元和功能测试中,您可以在其中提供输入并确保行为符合预期。测试一个碰巧调用其他函数的函数也不例外。如果测试失败,并且测试看起来很好,那么您的代码的行为方式与您期望的不一样,需要修复。这就是你编写测试的原因。
  • 您还没有具体说明失败的含义。但是尝试添加断点并逐步执行函数以查看失败的位置。

标签: c++ unit-testing googletest testcase


【解决方案1】:

你的问题不够清楚,但我想我可以给你一些步骤来理解谷歌测试: 1] 由于您的测试失败并且您不知道为什么,所以在调用您的函数之前添加断点。检查导致测试失败的逻辑并修复它。 2] 如果您只期望这些功能

tt_init_device();
tt_init_port();
tt_init_pipeline();

已通过使用 mock 的异常输出调用,因此您定义了一个 Mock 类并为每个方法分别添加模拟,请参阅 gmock 以开始使用模拟。

我希望这会是一个好处。

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 2020-03-23
    • 2018-06-06
    相关资源
    最近更新 更多