Вижу я дал мало информации. Опишу проблему подробнее.
Я создал проект с диалоговым окном (с формой). Расположил на форме элементы и в обработчиках кнопок реализовал соответствующий функционал:
Теперь хочу протестировать. Для этого создал ещё один проект так:
- в разделе "Projects" выбрал "Other Project" -> во второй колонке выбрал "Qt Unit Test"
Теперь у меня в одной директории две папки:
QtCalculator
TestGuiQtCalculator
Я взял пример из Qt, где тестируется GUI приложение:
#include <QtWidgets>
#include <QtTest/QtTest>
//! [0]
class TestGui: public QObject
{
Q_OBJECT
private slots:
void testGui_data();
void testGui();
};
//! [0]
//! [1]
void TestGui::testGui_data()
{
QTest::addColumn<QTestEventList>("events");
QTest::addColumn<QString>("expected");
QTestEventList list1;
list1.addKeyClick('a');
QTest::newRow("char") << list1 << "a";
QTestEventList list2;
list2.addKeyClick('a');
list2.addKeyClick(Qt::Key_Backspace);
QTest::newRow("there and back again") << list2 << "";
}
//! [1]
//! [2]
void TestGui::testGui()
{
QFETCH(QTestEventList, events);
QFETCH(QString, expected);
QLineEdit lineEdit;
events.simulate(&lineEdit);
QCOMPARE(lineEdit.text(), expected);
}
//! [2]
//! [3]
QTEST_MAIN(TestGui)
#include "testgui.moc"
//! [3]
Здесь создаётся список событий и этот список применяется к элементу QLineEdit
У меня таких QLineEdit три штуки. Я тоже хочу применить список событий к ним и к кнопке. К первым двум события: нажатия клавиш с цифрами, а к кнопкам клик мыши
Проблема в том, что я не могу получить доступ к моим QLineEdit и QPushButton.
Мне нужно подключить класс Dialog. Но как это сделать. Вот как я попытался:
- открыл файл TestGuiQtCalculator.pro и добавил в него:
INCLUDEPATH += "../QtCalculator/"
INCLUDEPATH += ../build-QtCalculator-Desktop_Qt_5_2_0_MinGW_32bit-Debug/
SOURCES += tst_testguiqtcalculatortest.cpp ../QtCalculator/dialog.cpp
- открыл файл tst_testguiqtcalculatortest.cpp и добавил в него:
#include "../QtCalculator/dialog.h"
#include "../build-QtCalculator-Desktop_Qt_5_2_0_MinGW_32bit-Debug/ui_dialog.h"
Запускаю. Выдаётся ошибка:
D:\Documents\Qt\QtExamples\0094_QtCalculator\QtCalculator\dialog.cpp:8: error: undefined reference to `vtable for Dialog'
QtCalculator:
https://github.com/8Observer8/QtCalculatorTestGuiQtCalculator:
https://github.com/8Observer8/TestGuiQtCalculatorОчень нужна помощь! Пожалуйста, помогите!