Using a test fixture
For tests that require a common setup and teardown for multiple test cases, Google Test offers the concept of a test fixture. This is achieved by defining a class derived from ::testing::Test and then using the TEST_F macro to write tests that use this fixture:
class CalculatorTest : public ::testing::Test {
protected:
void SetUp() override {
// Code here will be called immediately before each test
calculator.reset(new Calculator());
}
void TearDown() override {
// Code here will be called immediately after each test
calculator.reset();
}
std::unique_ptr<Calculator> calculator;
};
TEST_F(CalculatorTest, CanAddPositiveNumbers) {
...