Вопрос

Я определил некоторые сигналы, которые излучаются в разных случаях:

signals:
    void buttonXClicked(int x);
    void numButtonsChanged(int num);

Теперь мне просто хотелось бы посмотреть, как выглядят эти сигналы и верны ли параметры.Кажется, существует несколько подходов к мониторингу сигналов.

в почта здесь rohanpm относится к параметру -vs который указан ближе здесь:http://qt-project.org/doc/qt-4.8/qtestlib-manual.html#qtestlib-command-line-arguments

Кажется, это элегантный и быстрый способ получить необходимую мне информацию.Но если честно я не могу понять как и куда мне бежать -vs.Это не часть qmake.Куда еще мне его положить?(Я новичок в qt).

Связанный с QSignalSpy кажется необходимо изменить существующие классы?Разве не существует и «внешнего» подхода?

Существует множество документации о том, как протестировать слот, но связана ли она с сигналами?Могу ли я использовать printf или cout где-то?

Это было полезно?

Решение

Эта идея пришла мне в голову, когда я читал больше о моке и его функциональности.(По крайней мере, при использовании NetBeans) к моему файлу ButtonTest.cpp я получаю файл moc_ButtonTest.cpp.Внутри есть метод под названием:

// SIGNAL 0
void ButtonTest::buttonXClicked(int _t1)
{
    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
    QMetaObject::activate(this, &staticMetaObject, 0, _a);    
}

Я с трудом мог поверить, что это так просто, но я только что добавил

std::cout <<"buttonXClicked: "<<_t1;

и, кажется, он делает именно то, что я хочу.

Другие советы

Как написано в связанной документации:

Запускает тестовую функцию toUpper со всеми доступными тестовыми данными и тестовую функцию toInt с тестовыми данными, называемыми нулевыми (если указанные тестовые данные не существуют, связанный тест завершится неудачей).

/myTestDirectory$ testMyWidget -vs -eventdelay 500

где testMyWidget — созданный тестовый двоичный файл.Здесь идет -vs документация:

-vs выводит каждый сигнал, который излучается

Существует также дополнительная документация, если вы просмотрите вывод справки:

/myTestDirectory$ testMyWidget --help | grep "\-vs"
-vs outputs every signal that gets emitted

Если у вас возникли проблемы с письмом QTestLib основанные на модульных тестах, это хорошая отправная точка для вас с Qt 4:

Руководство по QTestLib

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top