Тип QML TestCase
Представляет собой тестовый случай для модульных тестов Подробнее...
| Оператор импорта: | import QtTest 1.1 |
| С тех пор: | Qt 4.8 |
| Наследует: |
Свойства
Методы
- cleanup()
- cleanupTestCase()
- compare(actual, expected, message)
- object createTemporaryObject(Component component, object parent, object properties)
- object createTemporaryQmlObject(string qml, object parent, string filePath)
- expectFail(tag, message)
- expectFailContinue(tag, message)
- fail(message)
- QtObject findChild(parent, objectName)
- fuzzyCompare(actual, expected, delta, message)
- object grabImage(item)
- ignoreWarning(message)
- init()
- initTestCase()
- keyClick(key, modifiers, delay)
- keyPress(key, modifiers, delay)
- keyRelease(key, modifiers, delay)
- mouseClick(item, x, y, button, modifiers, delay)
- mouseDoubleClick(item, x, y, button, modifiers, delay)
- mouseDoubleClickSequence(item, x, y, button, modifiers, delay)
- mouseDrag(item, x, y, dx, dy, button, modifiers, delay)
- mouseMove(item, x, y, delay)
- mousePress(item, x, y, button, modifiers, delay)
- mouseRelease(item, x, y, button, modifiers, delay)
- mouseWheel(item, x, y, xDelta, yDelta, button, modifiers, delay)
- skip(message)
- sleep(ms)
- TouchEventSequence touchEvent(object item)
- tryCompare(obj, property, expected, timeout, message)
- tryVerify(function, timeout, message)
- verify(condition, message)
- wait(ms)
- waitForRendering(item, timeout)
- warn(message)
Подробное описание
Введение в QML тестовые случаи
Тестовые случаи записываются как JavaScript-функции внутри типа TestCase:
import QtQuick 2.0
import QtTest 1.0
TestCase {
name: "MathTests"
function test_math() {
compare(2 + 2, 4, "2 + 2 = 4")
}
function test_fail() {
compare(2 + 2, 5, "2 + 2 = 5")
}
} Функции, имена которых начинаются с «test_», обрабатываются как тестовые случаи, которые должны быть выполнены. Свойство name используется для добавления префикса к функциям в выходных данных:
********* Start testing of MathTests ********* Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : MathTests::initTestCase() FAIL! : MathTests::test_fail() 2 + 2 = 5 Actual (): 4 Expected (): 5 Loc: [/home/.../tst_math.qml(12)] PASS : MathTests::test_math() PASS : MathTests::cleanupTestCase() Totals: 3 passed, 1 failed, 0 skipped ********* Finished testing of MathTests *********
Из-за того, как работают JavaScript-свойства, порядок, в котором находятся тестовые функции, непредсказуем. Для повышения предсказуемости, тестовый фреймворк отсортирует функции по возрастанию имени. Это может помочь, когда есть два теста, которые необходимо выполнить в определённом порядке.
Можно использовать несколько типов TestCase. Программа завершит работу после завершения всех тестов. Если нет необходимости выполнять тест (потому что предусловие не выполняется), можно установить optional в значение true.
Тесты с данными
Данные таблицы могут быть предоставлены тесту с помощью имени функции, которое оканчивается на «_data». В качестве альтернативы можно использовать функцию init_data() для предоставления стандартных тестовых данных для всех тестовых функций в типе TestCase:
import QtQuick 2.0
import QtTest 1.1
TestCase {
name: "DataTests"
function init_data() {
return [
{tag:"init_data_1", a:1, b:2, answer: 3},
{tag:"init_data_2", a:2, b:4, answer: 6}
];
}
function test_table_data() {
return [
{tag: "2 + 2 = 4", a: 2, b: 2, answer: 4 },
{tag: "2 + 6 = 8", a: 2, b: 6, answer: 8 },
]
}
function test_table(data) {
//data comes from test_table_data
compare(data.a + data.b, data.answer)
}
function test__default_table(data) {
//data comes from init_data
compare(data.a + data.b, data.answer)
}
} Тестовый фреймворк переберёт все строки в таблице и передаст каждую строку тестовой функции. Как показано, столбцы можно извлечь для использования в тесте. Столбец tag является специальным — он отображается тестовым фреймворком, когда строка завершается ошибкой, чтобы помочь читателю определить, какой случай завершился ошибкой среди набора прошедших тестов.
Benchmarks
Функции, имена которых начинаются с «benchmark_», будут выполняться несколько раз с помощью фреймворка Qt benchmark, и среднее значение времени выполнения будет отображаться для прогонов. Это эквивалентно использованию макроса QBENCHMARK в C++-версии QTestLib.
TestCase {
id: top
name: "CreateBenchmark"
function benchmark_create_component() {
var component = Qt.createComponent("item.qml")
var obj = component.createObject(top)
obj.destroy()
component.destroy()
}
}
RESULT : CreateBenchmark::benchmark_create_component:
0.23 msecs per iteration (total: 60, iterations: 256)
PASS : CreateBenchmark::benchmark_create_component() Чтобы получить эффект макроса QBENCHMARK_ONCE, добавьте префикс «benchmark_once_» к имени тестовой функции.
Моделирование событий клавиатуры и мыши
Методы keyPress(), keyRelease() и keyClick() могут быть использованы для моделирования событий клавиатуры в рамках модульных тестов. События передаются текущему фокусированному QML-элементу. Вы можете передать значение перечисления Qt.Key или символ latin1 (строка длиной один символ).
Rectangle {
width: 50; height: 50
focus: true
TestCase {
name: "KeyClick"
when: windowShown
function test_key_click() {
keyClick(Qt.Key_Left)
keyClick("a")
...
}
}
} Методы mousePress(), mouseRelease(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence() и mouseMove() могут быть использованы для моделирования событий мыши аналогичным образом.
Примечание: события клавиатуры и мыши могут быть переданы только после отображения основного окна. Попытки передать события до этого момента приведут к ошибке. Используйте свойства when и windowShown для отслеживания отображения основного окна.
Управление динамически созданными тестовыми объектами
Типичный шаблон с QML-тестами — это динамическое создание элемента и его уничтожение в конце тестовой функции:
TestCase {
id: testCase
name: "MyTest"
when: windowShown
function test_click() {
var item = Qt.createQmlObject("import QtQuick 2.0; Item {}", testCase);
verify(item);
// Test item...
item.destroy();
}
} Проблема этого шаблона заключается в том, что любые ошибки в тестовой функции приведут к пропуску вызова item.destroy(), оставив элемент в сцене до завершения тестового случая. Это может привести к вмешательству в будущие тесты; например, блокируя входные события или создавая не связанные отладочные выводы, которые затрудняют отслеживание выполнения кода.
Использование createTemporaryQmlObject() гарантирует, что объект будет уничтожен в конце тестовой функции:
TestCase {
id: testCase
name: "MyTest"
when: windowShown
function test_click() {
var item = createTemporaryQmlObject("import QtQuick 2.0; Item {}", testCase);
verify(item);
// Test item...
// Don't need to worry about destroying "item" here.
}
} Для объектов, созданных с помощью функции createObject() компонента Component, можно использовать функцию createTemporaryObject().
См. также SignalSpy и Qt Quick Test Справочная документация.
Документация по свойствам
completed : bool
Это свойство устанавливается в значение true после завершения выполнения тестового случая. Тестовые случаи выполняются только один раз. Начальное значение — false.
name : string
Это свойство определяет имя тестового случая для отчётности о результатах. Значение по умолчанию — пустая строка.
TestCase {
name: "ButtonTests"
...
} optional : bool
В приложении для тестирования можно указать несколько типов TestCase. Приложение завершит работу после выполнения всех тестов. Если для выполнения определенного тестового случая не требуется условие (потому что предварительное условие не выполнено), то этот параметр можно установить в значение true. Значение по умолчанию — false.
TestCase {
when: false
optional: true
function test_not_run() {
verify(false)
}
} running : bool
Этот параметр будет установлен в значение true во время выполнения тестового случая. Начальное значение — false, и значение снова станет false после завершения тестового случая.
when : bool
Этот параметр следует установить в значение true, когда приложение хочет запустить тестовые случаи. Значение по умолчанию — true. В следующем примере тест запускается при нажатии пользователем кнопки мыши:
Rectangle {
id: foo
width: 640; height: 480
color: "cyan"
MouseArea {
id: area
anchors.fill: parent
}
property bool bar: true
TestCase {
name: "ItemTests"
when: area.pressed
id: test1
function test_bar() {
verify(bar)
}
}
} Приложение для тестирования завершит работу после того, как все типы TestCase будут активированы и выполнены. Свойство optional можно использовать для исключения типа TestCase.
См. также optional и completed.
windowShown : bool
Этот параметр будет установлен в значение true после отображения окна просмотра QML. Обычно тестовые случаи запускаются сразу после загрузки приложения для тестирования и до отображения окна. Если тестовый случай включает визуальные типы и поведение, то его может потребоваться отложить до отображения окна.
Button {
id: button
onClicked: text = "Clicked"
TestCase {
name: "ClickTest"
when: windowShown
function test_click() {
button.clicked();
compare(button.text, "Clicked");
}
}
} Документация по методам
cleanup()
Эта функция вызывается после каждой тестовой функции, которая выполняется в типе TestCase. Реализация по умолчанию ничего не делает. Приложение может предоставить собственную реализацию для выполнения очистки после каждой тестовой функции.
См. также init() и cleanupTestCase().
cleanupTestCase()
Эта функция вызывается после завершения всех других тестовых функций в типе TestCase. Реализация по умолчанию ничего не делает. Приложение может предоставить собственную реализацию для выполнения очистки тестового случая.
См. также initTestCase() и cleanup().
compare(actual, expected, message = "")
Приводит к завершению текущего тестового случая с ошибкой, если actual не совпадает с expected, и отображает необязательное сообщение message. Аналогично QCOMPARE(actual, expected) в C++.
См. также tryCompare() и fuzzyCompare.
object createTemporaryObject(Component component, object parent, object properties)
Эта функция динамически создает объект QML из заданного component с указанным необязательным parent и properties. Возвращаемый объект будет уничтожен (если он ещё не был уничтожен) после завершения выполнения cleanup(), что означает, что объекты, созданные с помощью этой функции, гарантированно будут уничтожены после каждого теста, независимо от того, пройден ли тест успешно.
Если при создании объекта произошла ошибка, будет возвращено null.
Эта функция вызывает component.createObject() внутри.
Этот QML метод был добавлен в Qt 5.9.
См. также Управление динамически созданными тестовыми объектами.
object createTemporaryQmlObject(string qml, object parent, string filePath)
Эта функция динамически создает объект QML из заданной строки qml с указанным parent. Возвращаемый объект будет уничтожен (если он ещё не был уничтожен) после завершения выполнения cleanup(), что означает, что объекты, созданные с помощью этой функции, гарантированно будут уничтожены после каждого теста, независимо от того, пройден ли тест успешно.
Если при создании объекта произошла ошибка, будет возвращено null.
Если задан filePath, он будет использован для сообщений об ошибках созданного объекта.
Эта функция вызывает Qt.createQmlObject() внутри.
Этот QML метод был добавлен в Qt 5.9.
См. также Управление динамически созданными тестовыми объектами.
expectFail(tag, message)
В тестовом приложении с заданными данными отмечает строку, связанную с tag, как ожидающуюся ошибку. При возникновении ошибки отображается сообщение message, тест прерывается, а тест отмечается как пройденный. Аналогично QEXPECT_FAIL(tag, message, Abort) в C++.
Если тест не использует заданные данные, то tag должен быть пустой строкой.
См. также expectFailContinue().
expectFailContinue(tag, message)
В тестовом приложении с заданными данными отмечает строку, связанную с tag, как ожидающуюся ошибку. При возникновении ошибки отображается сообщение message, и тест продолжается. Аналогично QEXPECT_FAIL(tag, message, Continue) в C++.
Если тест не использует заданные данные, то tag должен быть пустой строкой.
См. также expectFail().
fail(message = "")
Приводит к завершению текущего тестового случая с ошибкой с необязательным сообщением message. Аналогично QFAIL(message) в C++.
QtObject findChild(parent, objectName)
Возвращает первый дочерний элемент parent с именем объекта objectName, или null , если такой элемент не существует. Поиск выполняется рекурсивно для визуальных и невизуальных дочерних элементов, с визуальными элементами, которые проверяются в первую очередь.
compare(findChild(item, "childObject"), expectedChildObject);
Этот QML метод был добавлен в Qt 5.4.
fuzzyCompare(actual, expected, delta, message = "")
Приводит к завершению текущего тестового случая с ошибкой, если различие между actual и expected больше, чем delta, и отображает необязательное сообщение message. Аналогично qFuzzyCompare(actual, expected) в C++, но с требуемым значением delta.
Функция также может использоваться для сравнения цветов, если оба значения actual и expected могут быть преобразованы в значения цвета. Если какие-либо различия для значений канала RGBA больше, чем delta, тест завершается с ошибкой.
См. также tryCompare() и compare().
object grabImage(item)
Возвращает объект изображения снимка заданного item.
Возвращаемый объект изображения имеет следующие методы:
- red(x, y) Возвращает значение красного канала пикселя в позиции x, y
- green(x, y) Возвращает значение зеленого канала пикселя в позиции x, y
- blue(x, y) Возвращает значение синего канала пикселя в позиции x, y
- alpha(x, y) Возвращает значение альфа-канала пикселя в позиции x, y
- pixel(x, y) Возвращает значение цвета пикселя в позиции x, y
- equals(image) Возвращает
true, если это изображение идентично image - см. QImage::operator== (с версии 5.6)Например:
var image = grabImage(rect); compare(image.red(10, 10), 255); compare(image.pixel(20, 20), Qt.rgba(255, 0, 0, 255)); rect.width += 10; var newImage = grabImage(rect); verify(!newImage.equals(image));
ignoreWarning(message)
Отмечает message как игнорируемое предупреждающее сообщение. При его появлении предупреждение не будет выведено, и тест пройден. Если сообщение не появится, то тест завершится с ошибкой. Аналогично QTest::ignoreMessage(QtWarningMsg, message) в C++.
См. также warn().
init()
Эта функция вызывается перед каждой тестовой функцией, которая выполняется в типе TestCase. Реализация по умолчанию ничего не делает. Приложение может предоставить собственную реализацию для выполнения инициализации перед каждой тестовой функцией.
См. также cleanup() и initTestCase().
initTestCase()
Эта функция вызывается перед любыми другими тестовыми функциями в типе TestCase. Реализация по умолчанию ничего не делает. Приложение может предоставить собственную реализацию для выполнения инициализации тестового случая.
См. также cleanupTestCase() и init().
keyClick(key, modifiers = Qt.NoModifier, delay = -1)
Эмулирует нажатие клавиши key с необязательными modifier на текущем активном элементе. Если delay больше 0, тест подождет delay миллисекунд.
Событие будет отправлено в окно TestCase или, в случае нескольких окон, в текущее активное окно. Дополнительные сведения см. в QGuiApplication::focusWindow().
См. также keyPress() и keyRelease().
keyPress(key, modifiers = Qt.NoModifier, delay = -1)
Имитирует нажатие key с необязательным modifier на текущем активном элементе. Если delay больше 0, тест подождет delay миллисекунд.
Событие будет отправлено окну TestCase, или, в случае нескольких окон, текущему активному окну. Более подробная информация в QGuiApplication::focusWindow().
Примечание: В какой-то момент вам необходимо отпустить клавишу с помощью keyRelease().
См. также keyRelease() и keyClick().
keyRelease(key, modifiers = Qt.NoModifier, delay = -1)
Имитирует отпускание key с необязательным modifier на текущем активном элементе. Если delay больше 0, тест подождет delay миллисекунд.
Событие будет отправлено окну TestCase, или, в случае нескольких окон, текущему активному окну. Более подробная информация в QGuiApplication::focusWindow().
См. также keyPress() и keyClick().
mouseClick(item, x = item.width / 2, y = item.height / 2, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует щелчок мыши button с необязательными modifier на item. Положение щелчка определяется x и y. Если x и y не заданы, положение будет центром item. Если delay задан, тест подождет указанное количество миллисекунд перед нажатием и отпусканием кнопки.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
См. также mousePress(), mouseRelease(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseMove(), mouseDrag() и mouseWheel().
mouseDoubleClick(item, x = item.width / 2, y = item.height / 2, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует двойной щелчок мыши button с необязательными modifier на item. Положение щелчка определяется x и y. Если x и y не заданы, положение будет центром item. Если delay задан, тест подождет указанное количество миллисекунд перед нажатием и отпусканием кнопки.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
См. также mouseDoubleClickSequence(), mousePress(), mouseRelease(), mouseClick(), mouseMove(), mouseDrag() и mouseWheel().
mouseDoubleClickSequence(item, x = item.width / 2, y = item.height / 2, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует полную последовательность событий, генерируемых двойным щелчком мыши button с необязательными modifier на item.
Этот метод воспроизводит последовательность событий мыши, генерируемых при двойном щелчке пользователя: Нажатие-Отпускание-Нажатие-Двойной щелчок-Отпускание.
Положение щелчка определяется x и y. Если x и y не заданы, положение будет центром item. Если delay задан, тест подождет указанное количество миллисекунд перед нажатием и отпусканием кнопки.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
Этот метод QML был добавлен в Qt 5.5.
См. также mouseDoubleClick(), mousePress(), mouseRelease(), mouseClick(), mouseMove(), mouseDrag() и mouseWheel().
mouseDrag(item, x, y, dx, dy, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует перетаскивание мыши по item с нажатой кнопкой button и необязательными modifier. Начальная позиция перетаскивания определяется x и y, а расстояние перетаскивания определяется dx и dy. Если delay задан, тест подождёт указанное количество миллисекунд перед отпусканием кнопки.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
Примечание: этот метод не подразумевает действие отпускания, для выполнения отпускания необходимо дополнительное mouseRelease(item, x + dx, y + dy).
См. также mousePress(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseMove(), mouseRelease() и mouseWheel().
mouseMove(item, x, y, delay = -1)
Перемещает указатель мыши в положение, заданное x и y внутри item. Если задан delay (в миллисекундах), тест подождёт перед перемещением указателя мыши.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
См. также mousePress(), mouseRelease(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseDrag() и mouseWheel().
mousePress(item, x = item.width / 2, y = item.height / 2, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует нажатие кнопки мыши button с необязательными modifier на item. Положение определяется x и y. Если x или y не заданы, положение будет центром item. Если delay задан, тест подождёт указанное количество миллисекунд перед нажатием.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
См. также mouseRelease(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseMove(), mouseDrag() и mouseWheel().
mouseRelease(item, x = item.width / 2, y = item.height / 2, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует отпускание кнопки мыши button с необязательными modifier на item. Положение отпускания определяется x и y. Если x или y не заданы, положение будет центром item. Если delay задан, тест подождёт указанное количество миллисекунд перед отпусканием кнопки.
Положение, заданное x и y, преобразуется из системы координат item в координаты окна и затем передаётся. Если item скрыт другим элементом или дочерний элемент item занимает это положение, событие будет доставлено другому элементу вместо этого.
См. также mousePress(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseMove(), mouseDrag() и mouseWheel().
mouseWheel(item, x, y, xDelta, yDelta, button = Qt.LeftButton, modifiers = Qt.NoModifier, delay = -1)
Имитирует вращение колесика мыши на item при нажатой кнопке button и с дополнительными modifier. Положение события колеса определяется координатами x и y. Если задано delay, тест подождёт указанное количество миллисекунд перед отпусканием кнопки.
Положение, заданное координатами x и y, преобразуется из системы координат item в координаты окна и затем доставляется. Если item скрыт другим элементом или дочерний элемент item занимает это положение, то событие будет доставлено другому элементу вместо этого.
xDelta и yDelta содержат расстояние поворота колесика в восьмых долях градуса. Подробнее см. QWheelEvent::angleDelta().
См. также mousePress(), mouseClick(), mouseDoubleClick(), mouseDoubleClickSequence(), mouseMove(), mouseRelease(), mouseDrag() и QWheelEvent::angleDelta().
skip(message = "")
Пропускает текущий тест и выводит необязательное сообщение message. Если это тест с набором данных, то пропускается только текущая строка. Аналогично QSKIP(message) в C++.
sleep(ms)
Засыпает на ms миллисекунд без обработки событий Qt.
См. также wait() и waitForRendering().
TouchEventSequence touchEvent(object item)
Начинает последовательность событий касания через симулированное устройство QTouchDevice::TouchScreen. События доставляются в окно, содержащее item.
Возвращаемый объект используется для перечисления событий, которые должны быть доставлены через один QTouchEvent. Касания доставляются в окно, содержащее TestCase, если не указано иное.
Этот метод QML был добавлен в Qt 5.9.
См. также TouchEventSequence::press(), TouchEventSequence::move(), TouchEventSequence::release(), TouchEventSequence::stationary(), TouchEventSequence::commit() и QTouchDevice::TouchScreen.
tryCompare(obj, property, expected, timeout = 5000, message = "")
Прерывает текущий тест, если указанное свойство property объекта obj не равно expected, и отображает необязательное сообщение message. Тест будет повторён несколько раз, пока не будет достигнуто время ожидания timeout (в миллисекундах).
Эта функция предназначена для тестирования приложений, где свойство изменяет значение в зависимости от асинхронных событий. Используйте compare() для тестирования синхронных изменений свойств.
SignalSpy::wait() предоставляет альтернативный метод ожидания выдачи сигнала.
См. также compare() и SignalSpy::wait().
tryVerify(function, timeout = 5000, message = "")
Прерывает текущий тест, если функция function не вернёт значение true до истечения указанного времени ожидания (в миллисекундах). Функция оценивается несколько раз до достижения времени ожидания. При ошибке отображается необязательное сообщение message.
Эта функция предназначена для тестирования приложений, где условие меняется в зависимости от асинхронных событий. Используйте verify() для тестирования синхронных изменений условия и tryCompare() для тестирования асинхронных изменений свойств.
Например, в приведенном ниже коде нельзя использовать tryCompare(), так как свойство currentItem может быть null в течение короткого периода времени:
tryCompare(listView.currentItem, "text", "Hello");
Вместо этого можно использовать tryVerify() для проверки того, что currentItem не null, а затем использовать обычную проверку:
tryVerify(function(){ return listView.currentItem })
compare(listView.currentItem.text, "Hello") Этот метод QML был добавлен в Qt 5.8.
См. также verify(), compare(), tryCompare() и SignalSpy::wait().
verify(condition, message = "")
Прерывает текущий тест, если условие condition ложно, и отображает необязательное сообщение message. Аналогично QVERIFY(condition) или QVERIFY2(condition, message) в C++.
wait(ms)
Ожидает ms миллисекунд, обрабатывая события Qt.
См. также sleep() и waitForRendering().
waitForRendering(item, timeout = 5000)
Ожидает timeout миллисекунд или до тех пор, пока item не будет отрисован рендером. Возвращает true, если item отрисован в течение timeout миллисекунд, иначе возвращает false. Значение по умолчанию для timeout составляет 5000.
warn(message)
Выводит message как предупреждение. Аналогично QWARN(message) в C++.
См. также ignoreWarning().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qttest-testcase.html