Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx54 / Записка(2).docx
Скачиваний:
22
Добавлен:
01.08.2013
Размер:
215.61 Кб
Скачать

4.3.Техника модульного тестирования.

Для большинства популярных языков программирования высокого уровня существуют инструменты и библиотеки модульного тестирования. Для С++ одним из таких инструментов является Boost::Test. Boost — одна из самых известных (и сам больших) библиотек для C++, а Boost::Test – это Фреймворк для тестирования, входящий в неё и построенный на макросах.

4.4.Проведение юнит-тестирования

Рассмотрим класс, единственная задача которого – деление и умножение некоторого числа и сохранение результата:

class Calculate

{

public:

explicit Calculate(int value)

: Value_(value)

{

}

void Divide(int value)

{

if (value == 0)

{

throw std::invalid_argument("Деление на ноль!");

}

Value_ /= value;

}

void Multiply(int value)

{

Value_ *= value;

}

int Result() const

{

return Value_;

}

private:

int Value_;

};

Сделаем по тесту на каждый метод:

#include "calculator.h"

#include <boost/test/unit_test.hpp>

#define BOOST_TEST_MODULE testCalculate

BOOST_AUTO_TEST_CASE(testCalculate)

{

Calculator calculator(12);

BOOST_CHECK_EQUAL(calculate.Result(), 12);

}

BOOST_AUTO_TEST_CASE(testCalculateDivide)

{

Calculate calculate(12);

calculate.Divide(3);

BOOST_CHECK_EQUAL(calculate.Result(), 4);

calculate.Divide(2);

BOOST_CHECK_EQUAL(calculate.Result(), 2);

}

BOOST_AUTO_TEST_CASE(testCalculateMultiply)

{

Calculator calculate(12);

calculate.Multiply(2);

BOOST_CHECK_EQUAL(calculate.Result(), 24);

calculate.Multiply(3);

BOOST_CHECK_EQUAL(calculate.Result(), 72);

}

Мы рассмотрели проверку равенства двух сущностей BOOST_CHECK_EQUAL, но помимо этого Boost Test предоставляет еще ряд инструментов:

BOOST_CHECK(условие)

Простейшая проверка истинно условие или нет.

BOOST_CHECK_EQUAL(значение_1, значение_2)

Проверка на равенство двух значений.

BOOST_CHECK_CLOSE(значение_1, значение_2, точность)

Проверка на равенство чисел с плавающей точкой. Два значения считаются равными, если не отличаются на значение более указанного (в процентах).

BOOST_CHECK_BITWISE_EQUAL(значение_1,значение_2)

Отличная штука! Проверит два значения побитово и сообщит в каком месте биты отличаются.

BOOST_CHECK_EQUAL_COLLECTIONS(начало_1,конец_1,начало_2,конец_2)

Проверка равенства двух последовательностей (массивов или контейнеров), на вход получает пару начало-конец последовательности (указатели или итераторы).

BOOST_CHECK_THROW(инструкция, исключение)

Проверка, что при выполнении инструкции будет вызвано указанное исключение.

5.Заключение

6. Библиографический указатель

  • Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. – СПб. БХВ-Петербург, 2003. – 1104 с. ил.

  • А. К. Гультяев, В. А. Машин. Проектирование и дизайн пользовательского интерфейса. – Спб. Корона-Принт, 2010.-239с.ил.

  • Д. Тидвелл. Разработка пользовательских интерфейсов.-Спб. Питер, 2008. – 416 с.ил.

  • Методическое обеспечение кафедры интеллектуальных информационных технологий. Режим доступа – \\Info.IIT\StudInfo\Методическое обеспечение кафедры.

  • Open Semantic Technology for Intelligent Systems. Режим доступа – http://ostis.net/.

  • Википедия. Свободная энциклопедия. Режим доступа – http://wikipedia.org/.

Соседние файлы в папке docx54