Сравнение платформ модульного теста C++ [закрывается]

286
задан Cœur 31 January 2019 в 21:09
поделиться

5 ответов

Посмотрите этот вопрос для некоторого обсуждения.

Они рекомендуют статьи: Исследование Джунглей Платформы Поблочного тестирования C++ , Noel Llopis. И более свежее: Тестовые Платформы Единицы C++

я не нашел статью, которая сравнивает googletest с другими платформами все же.

92
ответ дан Community 23 November 2019 в 01:50
поделиться

В Википедии есть полный список сред модульного тестирования с таблицами, в которых указаны поддерживаемые функции или нет.

23
ответ дан 23 November 2019 в 01:50
поделиться

Некоторые соответствующие ресурсы для модульного тестирования C ++ можно найти по адресу http://www.progweap.com/resources.html

3
ответ дан 23 November 2019 в 01:50
поделиться

Библиотека Boost Test — очень хороший выбор, особенно если вы уже используете Boost.

// TODO: Include your class to test here.
#define BOOST_TEST_MODULE MyTest
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(MyTestCase)
{
    // To simplify this example test, let's suppose we'll test 'float'.
    // Some test are stupid, but all should pass.
    float x = 9.5f;

    BOOST_CHECK(x != 0.0f);
    BOOST_CHECK_EQUAL((int)x, 9);
    BOOST_CHECK_CLOSE(x, 9.5f, 0.0001f); // Checks differ no more then 0.0001%
}

Он поддерживает:

  • Автоматическую или ручную регистрацию тестов
  • Множество утверждений
  • Автоматическое сравнение коллекций
  • Различные выходные форматы (включая XML)
  • Fixtures / Templates...

PS: я написал об этом статью, которая может помочь вам начать работу: C++ Unit Testing Framework: A Boost Test Tutorial

52
ответ дан 23 November 2019 в 01:50
поделиться

Новым проигрывателем является Google Test (также известный как Google C++ Testing Framework), который довольно хорош.

#include <gtest/gtest.h>

TEST(MyTestSuitName, MyTestCaseName) {
    int actual = 1;
    EXPECT_GT(actual, 0);
    EXPECT_EQ(1, actual) << "Should be equal to one";
}

Основные возможности:

  • Портативность
  • Фатальные и нефатальные утверждения
  • Простые утверждения, информативные сообщения: ASSERT_EQ(5, Foo(i)) << " where i = " << i;
  • Google Test автоматически обнаруживает ваши тесты и не требует их перечисления для запуска
  • Облегчает расширение ваш словарь утверждений
  • Смертельные тесты (см. расширенное руководство)
  • SCOPED_TRACE для циклов подпрограмм
  • Вы можете решить какие тесты запускать
  • XML отчет о тестировании поколение
  • Фикстуры / Мок / Шаблоны...
115
ответ дан 23 November 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: