我正在使用gtest
和gmock
在我的应用程序中,无法理解的目的Setup()
和中的Teardown()
功能gtest
。根据我的理解,Setup()
函数将在每次TEST_F
执行之前Teardown()
被调用,并在最后被调用。我们可以使用::testing::Test
该类constructor
并且destructor
出于相同的目的吧?到底在哪里使用这些功能?
您可以使用这些功能来(重新)建立在所有测试用例之间共享的资源的特定状态。特别是在测试用例涉及异常的情况下。
从他们的文档中说:
在以下极少数情况下,您可能仍想使用SetUp()/ TearDown():
- 如果拆除操作可能引发异常,则必须使用
TearDown()
与析构函数相对的对象,因为抛出析构函数会导致未定义的行为,通常会立即终止程序。请注意,在编译器中启用异常时,可能会引发许多标准库(如STL)。因此,TearDown()
如果要编写可有或没有例外的可移植测试,则应首选。- 当
--gtest_throw_on_failure
指定标志时,断言宏将引发异常。因此,如果您打算使用此标志运行测试,则不应在析构函数中使用Google Test断言。- 在构造函数或析构函数中,不能在此对象上进行虚拟函数调用。(您可以调用声明为virtual的方法,但是它将是静态绑定的。)因此,如果需要调用将在派生类中重写的方法,则必须使用
SetUp()
/TearDown()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句