Пространство имен QTestПространство имен QTest содержит все функции и объявления, которые связаны с инструментом QTestLib. Далее... #include <QTest> Классы
Типы
Функции
Макросы
Подробное описаниеПространство имен QTest содержит все функции и объявления, которые связаны с инструментом QTestLib. Пожалуйста, обратитесь к документации Руководство по использованию QTestLib для получения информации о том, как писать модульные тесты. Классыclass QTouchEventSequenceКласс QTouchEventSequence используется для имитации последовательности сенсорных событий. Далее... Документация типовenum QTest::AttributeIndexЭто перечисление номеров различных тестов.
enum QTest::KeyActionДанное перечисление описывает доступные действия для обработки клавиш.
enum QTest::LogElementTypeПеречисление определяет виды сообщений журнала тестов.
enum QTest::MouseActionДанное перечисление описывает возможные действия для обработки мыши.
enum QTest::QBenchmarkMetricДанное перечисление содержит список всех вещей, которые могут быть замерены.
Данное перечисление было введено или модифицировано в Qt 4.7. Смотрите также QTest::benchmarkMetricName() и QTest::benchmarkMetricUnit(). enum QTest::SkipModeДанное перечисление описывает режимы для пропуска тестов во время выполнения тестовых данных.
Смотрите также QSKIP(). enum QTest::TestFailModeДанное перечисление описывает режимы для обработки ожидаемых отказов макросов QVERIFY() и QCOMPARE().
Смотрите также QEXPECT_FAIL(). Описание функцийvoid QTest::addColumn ( const char * name, T * dummy = 0 )Добавляет столбец с типом T к текущим тестовым данным. name является названием столбца. dummy является обходным решением для ошибок компиляторов и может быть проигнорировано. Для заполнения столбца значениями может быть использована newRow(). Используйте QFETCH() для выборки данных в реальном тесте. Пример: void myTestFunction_data() { QTest::addColumn<int>("intval"); QTest::addColumn<QString>("str"); QTest::addColumn<double>("dbl"); QTest::newRow("row1") << 1 << "hello" << 1.5; } Для добавления пользовательских типов к тестовым данным тип должен быть зарегистрирован в QMetaType через Q_DECLARE_METATYPE(). Замечание: Этот макрос может использоваться только в функциях тестовых данных, которые вызываются тестовой платформой. Для более обширного примера смотрите Тестирование, управляемое данными. Смотрите также QTest::newRow(), QFETCH() и QMetaType. const char * QTest::benchmarkMetricName ( QBenchmarkMetric metric )Возвращает значение перечисления metric как символьную строку. Эта функция была введена в Qt 4.7. const char * QTest::benchmarkMetricUnit ( QBenchmarkMetric metric )Возвращает единицы измерения для указанной метрики metric. Эта функция была введена в Qt 4.7. const char * QTest::currentDataTag ()Возвращает имя текущих тестовых данных. Если у теста нет никаких назначенных тестовых данных, то функция возвращает 0. bool QTest::currentTestFailed ()Возвращает true, если текущая функция теста завершилась с ошибкой, в противном случае возвращает false. const char * QTest::currentTestFunction ()Возвращает имя тестовой функции, которая сейчас выполняется. Пример: void MyTestClass::cleanup() { if (qstrcmp(currentTestFunction(), "myDatabaseTest") == 0) { // очищаем все соединения с базой данных closeAllDatabases(); } } void QTest::ignoreMessage ( QtMsgType type, const char * message )Игнорирует сообщения, созданные qDebug() и qWarning(). Если будет выведено сообщение message с соответствующим типом type, то оно будет удалено из тестового журнала. Если тест завершается, а message не выводится, то в тестовый журнал добавляется неудача теста. Замечание: При вызове этой функции будет проигнорировано только одно сообщение. Если сообщение, которое вам необходимо проигнорировать, выдаётся дважды, то вы должны вызвать ignoreMessage() тоже дважды. Пример: QDir dir; QTest::ignoreMessage(QtWarningMsg, "QDir::mkdir: Empty or null file name(s)"); dir.mkdir(""); В приведённом выше примере теста QDir::mkdir() имеет право выдать предупреждение при вызове с неверным именем файла. void QTest::keyClick ( QWidget * widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Имитирует щелчок клавишей key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Примеры: QTest::keyClick(myWidget, Qt::Key_Escape); QTest::keyClick(myWidget, Qt::Key_Escape, Qt::ShiftModifier, 200); Первый из приведённых выше примеров имитирует щелчок клавишей escape на myWidget без любых модификаторов клавиатуры и без задержки. Второй из вышеприведённых примеров имитирует щелчок shift-escape на myWidget с последующей задержкой теста в 200 мс. Смотрите также QTest::keyClicks(). void QTest::keyClick ( QWidget * widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Это перегруженная функция. Имитирует щелчок клавишей key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Пример: QTest::keyClick(myWidget, 'a'); Пример выше имитирует щелчок a на myWidget без любых модификаторов клавиатуры и без задержки теста. Смотрите также QTest::keyClicks(). void QTest::keyClicks ( QWidget * widget, const QString & sequence, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Имитирует щелчки последовательности кнопок sequence на виджете widget. Дополнительно могут быть указаны модификаторы клавиатуры modifier, а также задержка delay (в миллисекундах) теста после каждого нажатия и отпускания клавиши. Пример: QTest::keyClicks(myWidget, "hello world"); Пример выше имитирует щелчки последовательности кнопок, представляющих "hello world", на myWidget без любых модификаторов клавиатуры и без задержек теста. Смотрите также QTest::keyClick(). void QTest::keyEvent ( KeyAction action, QWidget * widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Отправляет Qt-событие клавиши виджету widget с заданной кнопкой key и связанным действием action. Дополнительно может быть указан модификатор клавиатуры modifier, а также задержка delay (в миллисекундах) теста перед отправкой события. void QTest::keyEvent ( KeyAction action, QWidget * widget, char ascii, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Это перегруженная функция. Отправляет Qt-событие клавиши виджету widget с заданной кнопкой ascii и связанным действием action. Дополнительно может быть указан модификатор клавиатуры modifier, а также задержка delay (в миллисекундах) теста перед отправкой события. void QTest::keyPress ( QWidget * widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Имитирует нажатие клавиши key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Замечание: В какой-то момент вы должны отпустить клавишу при помощи keyRelease(). Смотрите также QTest::keyRelease() и QTest::keyClick(). void QTest::keyPress ( QWidget * widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Это перегруженная функция. Имитирует нажатие клавиши key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Замечание: В какой-то момент вы должны отпустить клавишу при помощи keyRelease(). Смотрите также QTest::keyRelease() и QTest::keyClick(). void QTest::keyRelease ( QWidget * widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Имитирует отпускание клавиши key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Смотрите также QTest::keyPress() и QTest::keyClick(). void QTest::keyRelease ( QWidget * widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1 ) [static]Это перегруженная функция. Имитирует отпускание клавиши key с необязательным модификатором modifier на виджете widget. Если задержка delay больше, чем 0, то тест будет ждать delay миллисекунд. Смотрите также QTest::keyClick(). void QTest::mouseClick ( QWidget * widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1 )Имитирует щелчок кнопкой мыши button с необязательным модификатором modifier на виджете widget. Позиция щелчка определятся pos; позицией по умолчанию является центр виджета. Если задержка delay указана, то тест будет ждать указанное количество миллисекунд перед нажатием и перед отпусканием кнопки. Смотрите также QTest::mousePress() и QTest::mouseRelease(). void QTest::mouseDClick ( QWidget * widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1 )Имитирует двойной щелчок кнопкой мыши button с необязательным модификатором modifier на виджете widget. Позиция щелчка определятся pos; позицией по умолчанию является центр виджета. Если задержка delay указана, то тест будет ждать указанное количество миллисекунд перед каждым нажатием и отпусканием. Смотрите также QTest::mouseClick(). void QTest::mouseMove ( QWidget * widget, QPoint pos = QPoint(), int delay = -1 )Перемещает указатель мыши к виджету widget. Если позиция pos не определена, то указатель мыши перемещается в центр виджета. Если задержка delay (в миллисекундах) задана, то тест будет ждать перед перемещением указателя мыши. void QTest::mousePress ( QWidget * widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1 )Имитирует нажатие кнопки мыши button с необязательным модификатором modifier на виджете widget. Позиция определятся pos; позицией по умолчанию является центр виджета. Если задержка delay указана, то тест будет ждать указанное количество миллисекунд перед нажатием. Смотрите также QTest::mouseRelease() и QTest::mouseClick(). void QTest::mouseRelease ( QWidget * widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1 )Имитирует отпускание кнопки мыши button с необязательным модификатором modifier на виджете widget. Позиция отпускания определятся pos; позицией по умолчанию является центр виджета. Если задержка delay указана, то тест будет ждать указанное количество миллисекунд перед отпусканием кнопки. Смотрите также QTest::mousePress() и QTest::mouseClick(). QTestData & QTest::newRow ( const char * dataTag )Добавляет новую строку к текущим тестовым данным. dataTag - это название тестовых данных, которое появляется в выводе теста. Возвращает ссылку на QTestData, которая может быть использована для потока данных. Пример: void myTestFunction_data() { QTest::addColumn<QString>("aString"); QTest::newRow("just hello") << QString("hello"); QTest::newRow("a null string") << QString(); } Замечание: Этот макрос может использоваться только в функциях тестовых данных, которые вызываются тестовой платформой. Для более обширного примера смотрите Тестирование, управляемое данными. Смотрите также addColumn() и QFETCH(). int QTest::qExec ( QObject * testObject, int argc = 0, char ** argv = 0 )Выполняет тесты, объявленные в testObject. Кроме того, выполняются закрытые слоты initTestCase(), cleanupTestCase(), init() и cleanup(), если они существуют. Для получения дополнительной информации смотрите Создание теста. Дополнительно могут быть предоставлены аргументы argc и argv. Для получения списка распознаваемых аргументов читайте Аргументы командной строки QTestLib. Для автономных тестов можно использовать вспомогательный макрос QTEST_MAIN() для объявления основного метода, который анализирует аргументы командной строки и выполняет тесты. Возвращает 0, если все тесты завершились успешно. Возвращает значение, отличное от 0, если тесты завершились неудачей или в случае необработанных исключений. Возвращаемое из этой функции значение является также кодом завершения тестового приложения, когда используется макрос QTEST_MAIN(). Следующий пример выполнит все тесты в MyFirstTestObject и MySecondTestObject: MyFirstTestObject test1; QTest::qExec(&test1); MySecondTestObject test2; QTest::qExec(&test2); Замечание: Эта функция не реентерабельна, только один тест может быть запущен за раз. Тест, который выполняется через qExec(), не может запустить другой тест через qExec(), а потокам не разрешается одновременно вызывать qExec(). Если вы программно создали аргументы, а не получили их из командной строки в main(), то скорее всего для вас представляет интерес использование QTest::qExec(QObject *, const QStringList &), поскольку она Unicode-безопасна. Смотрите также QTEST_MAIN(). int QTest::qExec ( QObject * testObject, const QStringList & arguments )Это перегруженная функция. Ведет себя идентично qExec(QObject *, int, char**), но принимает QStringList как аргументы arguments, вместо списка char**. Эта функция была введена в Qt 4.4. void QTest::qSleep ( int ms )Засыпает на ms миллисекунд, блокируя выполнения теста. qSleep() не делает никаких обработок событий и оставляет ваш тест безответным. У сетевых соединений может завершиться таймаут во время сна. Для неблокирующего сна используйте qWait(). ms должен быть больше, чем 0. Замечание: Функция qSleep() вызывает либо nanosleep() в Unix, либо Sleep() в Windows, так что точность времени, проведённого в qSleep(), зависит от операционной системы. Пример: QTest::qSleep(250); Смотрите также qWait(). void QTest::qWait ( int ms ) [static]Ждёт ms миллисекунд. Пока идёт ожидание, события будут обрабатываться и ваш тест продолжает отвечать на события пользовательского интерфейса и сетей связи. Пример: int i = 0; while (myNetworkServerNotResponding() && i++ < 50) QTest::qWait(250); Код выше ожидает ответа сетевого сервера в течение максимум около 12,5 секунд. Смотрите также QTest::qSleep(). bool QTest::qWaitForWindowShown ( QWidget * window ) [static]Ждёт отображения окна window на экране. В основном это полезно для асинхронных систем, подобных X11, где процесс появления окна на экране происходит в течение некоторого времени после того, как поступил запрос на его отображение на экране. Возвращает true. Пример: QWidget widget; widget.show(); QTest::qWaitForWindowShown(&widget); Эта функция была введена в Qt 4.6. char * QTest::toHexRepresentation ( const char * ba, int length )Возвращает указатель на строку, которая является строкой ba, представленной как последовательность разделённых пробелами шестнадцатеричных символов. Если вход считается слишком длинным, то он усекается. Усечение обозначается в возвращаемой строке как многоточие в конце. length является длиной строки ba. char * QTest::toString ( const T & value )Возвращает текстовое представление value. Эта функция используется QCOMPARE() для вывода подробной информации в случае неудачи теста. Этой функцией вы можете добавить специализацию к вашему тесту для включения подробного вывода. Замечание: Тот, кто вызывает toString(), должен удалить возвращаемые данные с помощью delete[]. Ваша реализация должна возвращать строку, созданную с помощью new[] или qstrdup(). Пример: namespace QTest { template<> char *toString(const MyPoint &point) { QByteArray ba = "MyPoint("; ba += QByteArray::number(point.x()) + ", " + QByteArray::number(point.y()); ba += ")"; return qstrdup(ba.data()); } } Пример выше определяет специализацию toString() для класса с названием MyPoint. Всякий раз, когда сравнение двух экземпляров MyPoint ложно, QCOMPARE() будет вызывать эту функцию для вывода содержимого MyPoint в журнал теста. Смотрите также QCOMPARE(). char * QTest::toString ( const QLatin1String & string )Это перегруженная функция. Возвращает текстовое представление заданной строки string. char * QTest::toString ( const QString & string )Это перегруженная функция. Возвращает текстовое представление заданной строки string. char * QTest::toString ( const QByteArray & ba )Это перегруженная функция. Возвращает текстовое представление массива байт ba. Смотрите также QTest::toHexRepresentation(). char * QTest::toString ( const QTime & time )Это перегруженная функция. Возвращает текстовое представление заданного времени time. char * QTest::toString ( const QDate & date )Это перегруженная функция. Возвращает текстовое представление заданной даты date. char * QTest::toString ( const QDateTime & dateTime )Это перегруженная функция. Возвращает текстовое представление даты и времени, указанных в dateTime. char * QTest::toString ( const QChar & character )Это перегруженная функция. Возвращает текстовое представление заданного символа character. char * QTest::toString ( const QPoint & point )Это перегруженная функция. Возвращает текстовое представление заданной точки point. char * QTest::toString ( const QSize & size )Это перегруженная функция. Возвращает текстовое представление заданного размера size. char * QTest::toString ( const QRect & rectangle )Это перегруженная функция. Возвращает текстовое представление заданного прямоугольника rectangle. char * QTest::toString ( const QUrl & url )Это перегруженная функция. Возвращает текстовое представление заданного url. Эта функция была введена в Qt 4.4. char * QTest::toString ( const QPointF & point )Это перегруженная функция. Возвращает текстовое представление заданной точки point. char * QTest::toString ( const QSizeF & size )Это перегруженная функция. Возвращает текстовое представление заданного размера size. char * QTest::toString ( const QRectF & rectangle )Это перегруженная функция. Возвращает текстовое представление заданного прямоугольника rectangle. char * QTest::toString ( const QVariant & variant )Это перегруженная функция. Возвращает текстовое представление заданного варианта variant. QTouchEventSequence QTest::touchEvent ( QWidget * widget = 0, QTouchEvent::DeviceType deviceType = QTouchEvent::TouchScreen )Создаёт и возвращает QTouchEventSequence для устройства deviceType для имитации событий для виджета widget. Когда сенсорные события добавляются в последовательность, виджет widget также будет использоваться для преобразования позиции, предоставленной в экранных координатах, если другой виджет не предоставлен в соответствующих вызовах press(), move() и т.д. Сенсорные события передаются системе событий, когда вызывается деструктор QTouchEventSequence (например, когда объект выходит за пределы действия). Описание макросовQBENCHMARKЭтот макрос используется для измерения производительности кода в тесте. Код для эталонного тестирования содержится в блоке кода после этого макроса. Например: void TestBenchmark::simple() { QString str1 = QLatin1String("This is a test string"); QString str2 = QLatin1String("This is a test string"); QCOMPARE(str1.localeAwareCompare(str2), 0); QBENCHMARK { str1.localeAwareCompare(str2); } } Смотрите также Создание эталонного теста и Разработка эталонного теста. QBENCHMARK_ONCEМакрос QBENCHMARK_ONCE предназначен для измерения производительности блока кода путём однократного запуска. Этот макрос используется для измерения производительности кода в тесте. Код для эталонного тестирования содержится в блоке кода после этого макроса. В отличие от QBENCHMARK содержимое блока с кодом выполняется только один раз. Прошедшее время будет отражено как "0", если оно слишком мало для измерения выбранным средством. (Использование) Эта функция была введена в Qt 4.6. Смотрите также Создание эталонного теста и Разработка эталонного теста. QCOMPARE ( actual, expected )Макрос QCOMPARE сравнивает фактическое значение actual с ожидаемым значением expected при помощи оператора равенства. Если actual и expected идентичны, то выполнение продолжается. Если нет, то в журнал теста записывается неудача, а тест далее не выполняется. В случае сравнения вещественных чисел одинарной и двойной точности (float и double) для сравнения используется qFuzzyCompare(). Это означает, что сравнение с 0, вероятно, будет неудачным. Одним из решений этого является сравнение с 1 и добавление 1 к производимому выводу. QCOMPARE пытается вывести содержимое значения, если сравнение было неудачным, так что в журнале теста будет видно, почему сравнение не прошло. QCOMPARE очень строг по отношению к типам данных. actual и expected должны быть одного и того же типа, в противном случае тест не будет компилироваться. Это препятствует появлению неопределённого поведения; поведения, которое обычно возникает, когда компилятор неявно приводит аргументы. Если вы используете QCOMPARE() для сравнения объектов QStringList, то он запустит сравнение объектов с концов списков. Для ваших собственных классов вы можете использовать QTest::toString() для формирования значений для вывода в журнал теста. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. Пример: QCOMPARE(QString("hello").toUpper(), QString("HELLO")); Смотрите также QVERIFY() и QTest::toString(). QEXPECT_FAIL ( dataIndex, comment, mode )Макрос QEXPECT_FAIL() помечает следующий QCOMPARE() или QVERIFY() как ожидающий неудачи. Вместо добавления неудачи в журнал теста будет сообщено об ожидаемой неудаче. Если QVERIFY() или QCOMPARE() помечены как ожидающие неудачу, но вместо этого успешно проходят, то в журнал теста записывается неожиданный успех (XPASS). Параметр dataIndex описывает, для какой записи в тестовых данных ожидается неудача. Передайте пустую строку (""), если неудача ожидается для всех записей или если тестовые данные отсутствуют. Для ожидаемой неудачи в журнал теста будет добавлен комментарий comment. Режим mode - это QTest::TestFailMode и устанавливает, должен ли тест продолжать выполнение или нет. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. Пример 1: QEXPECT_FAIL("", "Will fix in the next release", Continue); QCOMPARE(i, 42); QCOMPARE(j, 43); В приведённом выше примере ожидаемая неудача будет записана в тестовый вывод, если переменная i не равна 42. Если переменная i равна 42, то вместо этого будет записан неожиданный успех. QEXPECT_FAIL() не оказывает никакого влияния на второй оператор QCOMPARE() в примере. Пример 2: QEXPECT_FAIL("data27", "Oh my, this is soooo broken", Abort); QCOMPARE(i, 42); Тестовая функция выше не будет продолжать выполнение для записи data27 тестовых данных. Смотрите также QTest::TestFailMode, QVERIFY() и QCOMPARE(). QFAIL ( message )Этот макрос может использоваться для принудительной неудачи теста. Тест останавливает выполнение и сообщение message о неудаче добавляется в журнал теста. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. Пример: if (sizeof(int) != 4) QFAIL("This test has not been ported to this platform yet."); QFETCH ( type, name )Макрос выборки создаёт локальную переменную с именем name и типом type в стеке. Имя name должно соответствовать имени элемента из тестовых данных. Если такого элемента не существует, то тест аварийно завершится по assert. Предположим, что тест имеет следующие данные: void TestQString::toInt_data() { QTest::addColumn<QString>("aString"); QTest::addColumn<int>("expected"); QTest::newRow("positive value") << "42" << 42; QTest::newRow("negative value") << "-42" << -42; QTest::newRow("zero") << "0" << 0; } В тестовых данных есть два элемента, QString, названный aString, и целое, названное expected. Для выбора этих значений в реальном тесте: void TestQString::toInt() { QFETCH(QString, aString); QFETCH(int, expected); QCOMPARE(aString.toInt(), expected); } aString и expected являются переменными в стеке, которые инициализируются текущими тестовыми данными. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. У тестовой функции должна быть функция _data. QSKIP ( description, mode )Макрос QSKIP() останавливает выполнение теста без добавления неудачи в журнал теста. Вы можете использовать его для пропуска тестов, нецелесообразных в текущей конфигурации. Текст описания description добавляется к журналу теста и должен содержать объяснение, почему тест не может быть выполнен. Режим mode - это QTest::SkipMode и описывает, необходимо ли продолжать с остальными тестовыми данными или нет. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. Пример: if (!QSqlDatabase::drivers().contains("SQLITE")) QSKIP("This test requires the SQLITE database driver", SkipAll); Смотрите также QTest::SkipMode. QTEST ( actual, testElement )QTEST() является вспомогательным макросом для QCOMPARE() и сравнивает фактическое значение actual с элементом testElement из тестовых данных. Если такого элемента нет, то тест аварийно завершается по assert. За исключением этого QTEST() ведёт себя так же, как и QCOMPARE(). Вместо записи: QFETCH(QString, myString); QCOMPARE(QString("hello").toUpper(), myString); вы можете написать: QTEST(QString("hello").toUpper(), "myString"); Смотрите также QCOMPARE(). QTEST_APPLESS_MAIN ( TestClass )Реализует функцию main(), которая выполняет все тесты в TestClass. Ведёт себя похоже на QTEST_MAIN(), но не создаёт экземпляр объекта QApplication. Используйте этот макрос для очень простых автономных тестов без графического пользовательского интерфейса. Смотрите также QTEST_MAIN(). QTEST_MAIN ( TestClass )Реализует функцию main(), которая создаёт объект приложения и TestClass и выполняет все тесты в порядке их определения. Используйте этот макрос для создания автономных исполняемых файлов. Если определён QT_GUI_LIB, то объект приложения будет QApplication, в противном случае он будет QCoreApplication. Если используется qmake и конфигурация включает QT += gui, то QT_GUI_LIB будет определён автоматически. Замечание: На платформах, в которых навигация с клавиатуры включена по умолчанию (например: Symbian), этот макрос будет принудительно отключать её для упрощения использования событий клавиатуры при создании автотестов. Если вы хотите написать тестовый сценарий, который использует навигацию с клавиатуры, то вы должны включить ее в функциях initTestCase() или init() вашего тестового сценария. Пример: class TestQString: public QObject { ... }; QTEST_MAIN(TestQString) Смотрите также QTEST_APPLESS_MAIN(), QTest::qExec() и QApplication::setNavigationMode(). QTEST_NOOP_MAIN ()Реализует функцию main() с тестовым классом, который абсолютно ничего не делает. Используйте этот макрос для создания тестов, которые производят корректный вывод теста, но только не выполняют никакого теста, например, в условных выражениях: #ifdef Q_WS_X11 QTEST_MAIN(MyX11Test) #else // ничего не делать на не X11-платформах QTEST_NOOP_MAIN #endif Смотрите также QTEST_MAIN(). QVERIFY2 ( condition, message )Максро QVERIFY2() ведёт себя точно так же, как и QVERIFY(), за исключением того, что он выводит подробное сообщение message при ложном условии condition. Сообщение message является простой C-строкой. Пример: QVERIFY2(1 + 1 == 2, "A breach in basic arithmetic occurred."); Смотрите также QVERIFY() и QCOMPARE(). QVERIFY ( condition )Макрос QVERIFY() проверяет, является ли условие condition или нет. Если оно равно true, выполнение продолжается. Если нет, то в журнал теста записывается неудача, а тест далее не выполняется. Замечание: Этот макрос может использоваться только в тестовых функциях, которые вызываются тестовой платформой. Пример: QVERIFY(1 + 1 == 2); Смотрите также QCOMPARE(). QWARN ( message )Добавляет сообщение message как предупреждение в журнал теста. Этот макрос может использоваться в любом месте ваших тестов. Замечание: Эта функция потокобезопасна. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |