Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Qt. Лабораторная работа. Сетевое программирован....docx
Скачиваний:
18
Добавлен:
22.11.2018
Размер:
154.22 Кб
Скачать

Заключение

яффыфыфы

2. Проведение тестов в qt

Тесты - это мощный детектор ошибок, резко сокращающий время их поиска. Создав надежные тесты, можно значительно увеличить скорость программирования.

Для создания тестов QT предоставляет специальный модуль QtTestLib, который разработан для того, чтобы упростить тестирование классов вашего приложения. Также он включает в себя возможности проведения тестов классов графического интерфейса и позволяет "симулировать" клавиатуру и мышь. QtTestLib предоставляет возможность для тестирования графического интерфейса.

Для создания теста нужен класс, который будет содержать тестовые слоты. Этот класс должен быть унаследован от класса Qobject. Тестовая программа должна содержать макрос QTEST_MAIN(), который заменяет функцию main() для запуска всех тестовых методов.

Макрос QCOMPARE() сравнивает результирующие значения с ожидаемыми. Если значения идентичны, то исполнение теста будет продолжено, если нет - тест будет остановлен с отображением об ошибке.

Макрос QVERIFY() проверяет правильность условия. Если значение равно true, то выполнение теста продолжается, иначе, отображается сообщение об ошибке.

В pro-файле в секции CONFIG должна быть добавлена опция qtestlib:

CONFIG += qtestlib

Модульные тесты - тесты, в которых каждый класс действует в рамках одного вашего модуля и исходит из того, что за его пределами всё работает нормально.

Файл test.cpp

#include <QtTest/QtTest>

#include <QtGui>

class Test_QLineEdit : public QObject{

Q_OBJECT

private slots:

void edit();

};

void Test_QLineEdit::edit()

{

QLineEdit txt;

QTest::keyClicks(&txt, "ABCDEF");

QCOMPARE(txt.text(), QString("ABCDEF"));

QVERIFY(txt.isModified());

}

QTEST_MAIN(Test_QLineEdit)

#include "test.moc"

В реализации тестового метода edit() мы создаем виджет QLineEdit. Затем имитируем ввод "ABCDEF", используя метод QTest::keyClicks(), который имитирует серию нажатий на клавиши клавиатуры. Потом мы используем QСompare-макрос, чтобы проверить на совпадение текст однострочного текстового поля и ожидаемый текст. QVERIFY-макрос оценивает переданное выражение и если результат true - тест продолжается.

Литература

Макс Шлее Qt 4.5 Профессиональное программирование на C++. — СПб.: «БХВ-Петербург», 2010. — С. 896. — ISBN 978-5-9775-0398-3

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]