Пример setUP() TearDown()
#include <gtest/gtest.h>
class Rectangle {
public:
Rectangle(double length, double width)
: length(length), width(width) {}
double calculateArea() const {
return length * width;
}
private:
double length;
double width;
};
class RectangleTest : public testing::Test {
protected:
double initialLength, initialWidth;
Rectangle* rectangle;
// Функция SetUp() будет вызвана перед каждым тестом
void SetUp() override {
// Инициализация данных перед каждым тестом
initialLength = 4.0;
initialWidth = 3.0;
rectangle = new Rectangle(initialLength, initialWidth);
}
// Функция TearDown() будет вызвана после каждого теста
void TearDown() override {
// Очистка данных после каждого теста (если необходимо)
delete rectangle;
}
};
TEST_F(RectangleTest, CalculateArea) {
// Ожидаемое значение площади
double expectedArea = initialLength * initialWidth;
// Вычисляем площадь и сравниваем с ожидаемым значением
double actualArea = rectangle->calculateArea();
ASSERT_DOUBLE_EQ(expectedArea, actualArea);
}
// Другой тест, например, с другими значениями длины и ширины
TEST_F(RectangleTest, AnotherTest) {
// Изменяем значения длины и ширины для другого теста
initialLength = 5.0;
initialWidth = 2.0;
delete rectangle; // Очищаем предыдущий объект
rectangle = new Rectangle(initialLength, initialWidth);
// Ожидаемое значение площади
double expectedArea = initialLength * initialWidth;
// Вычисляем площадь и сравниваем с ожидаемым значением
double actualArea = rectangle->calculateArea();
ASSERT_DOUBLE_EQ(expectedArea, actualArea);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Last updated