Я только начинаю с QT и хочу иметь модульные тесты. Я нашел план структуры проекта, который поддерживает тесты вне моего приложения.Как проверить соединения с сигнальным слотом с qtest
Для моего первого теста я хотел нажать на пункт меню «Выход», убедившись, что на самом деле вызывается действие QMainWindow.
Исходя из Java со всеми его рамками, насмехаясь, вот что я хотел бы сделать:
- Simulate Нажмите на меню (или нажатие клавиши)
- Нажмите на Quit действий (или нажатие клавиши)
- Убедитесь, что сигнал «срабатывает()» из QAction излучается
- Убедитесь, что слот «закрыть» из QMainWindow был назван
Я прочитайте учебник qtest, документацию KDE и другие материалы в сети, но я не могу выразить это с помощью qtest (пока).
Я нашел Qt UI testing: How to simulate a click on a QMenuBar item using QTest?, который описывает аналогичную вещь, но даже там покрыты только 1, 2, 3 (И я даже не смог заставить их работать).
Так как я могу написать такой тест? Возможно ли это?
Я действительно узнал о QSignalSpy, но это только половина сигнального слота. :) Я также попытался переопределить мой MainWindow с тестовой версией close, но поскольку метод не определен, виртуальный тоже не работает. –