Глава 1: Разработка модульного тестаФайлы: В этой главе мы увидим, как написать простой модульный тест для класса и как его выполнить. Написание тестаПредположим, вы хотите проверить поведение нашего класса QString. Для начала вам нужен класс, содержащий тестовые функции. Этот класс должен наследоваться от QObject: #include <QtTest/QtTest> class TestQString: public QObject { Q_OBJECT private slots: void toUpper(); }; Заметьте, что вам необходимо подключить заголовочный файл QTest, и что тестовые функции должны быть объявлены как закрытые слоты, таким образом тестовая платформа находит и выполняет их. Затем вам необходимо реализовать саму тестовую функцию. Реализация может выглядеть следующим образом: void TestQString::toUpper() { QString str = "Hello"; QVERIFY(str.toUpper() == "HELLO"); } Макрос QVERIFY() вычисляет выражение, переданное как его аргумент. Если выражение истинно, то выполнение тестовой функции продолжается. В противном случае сообщение, описывающее отказ, добавляется к журналу теста, и тестовая функция прекращает выполнение. Если же вам нужен более подробный вывод в журнал теста, то вы должны использовать вместо этого макрос QCOMPARE(): void TestQString::toUpper() { QString str = "Hello"; QCOMPARE(str.toUpper(), QString("HELLO")); } Если строки не равны, то содержимое обоих строк добавляется к журналу теста, что позволяет сразу увидеть, почему сравнение дало ошибку. Наконец, чтобы сделать наш тест автономной исполняемой программой, необходимы следующие две строки: QTEST_MAIN(TestQString) #include "testqstring.moc" Макрос QTEST_MAIN() заменяется на простой метод main(), запускающий все тестовые функции. Заметьте, что если и объявление, и реализация вашего тестового класса находятся в .cpp-файле, то вам также необходимо подключить сгенерированный moc-файл, чтобы заработал самоанализ Qt. Выполнение тестаТеперь, когда мы закончили писать наш тест, мы хотим его выполнить. Будем считать, что наш тест был сохранён как testqstring.cpp в пустом каталоге: мы соберем тест при помощи qmake, создав файл проекта и сгенерировав make-файл. /myTestDirectory$ qmake -project "CONFIG += qtestlib" /myTestDirectory$ qmake /myTestDirectory$ make Замечание: Если вы используете Windows, замените make на nmake или на тот инструмент, который вы используете. Запуск получившегося исполняемого файла должен вывести на консоль следующее: ********* Start testing of TestQString ********* Config: Using QTest library 4.7.4, Qt 4.7.4 PASS : TestQString::initTestCase() PASS : TestQString::toUpper() PASS : TestQString::cleanupTestCase() Totals: 3 passed, 0 failed, 0 skipped ********* Finished testing of TestQString ********* Поздравляем! Вы только что написали и выполнили ваш первый модульный тест при помощи QTestLib. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |