i using gtest , gmock in applications , couldn't able understand purpose of setup() , teardown() functions in gtest. per understanding setup() function called before each test_f execution , teardown() called @ end. can use ::testing::test class constructor , destructor same purpose right? these function used?
you can use these functions (re-)establish state of resources shared among of test cases. in case when exceptions involved in test cases.
from documentation it's said:
you may still want use setup()/teardown() in following rare cases:
- if tear-down operation throw exception, must use
teardown()opposed destructor, throwing in destructor leads undefined behavior , kill program right away. note many standard libraries (like stl) may throw when exceptions enabled in compiler. therefore should preferteardown()if want write portable tests work or without exceptions.- the assertion macros throw exception when flag
--gtest_throw_on_failurespecified. therefore, shouldn't use google test assertions in destructor if plan run tests flag.- in constructor or destructor, cannot make virtual function call on object. (you can call method declared virtual, statically bound.) therefore, if need call method overriden in derived class, have use
setup()/teardown().
Comments
Post a Comment