Тестирование объекта qt с использованием фреймворка cxxtest и valgrind - PullRequest
0 голосов
/ 24 ноября 2010

Можно ли использовать cxxunit или любую другую платформу для модульного тестирования (кроме QtTestLib ) для тестирования виджетов qt?

Если да, то есть еще двавопросы:

  1. Как?
  2. Поскольку я запускаю модульные тесты с использованием valgrind, может ли это сообщить об ошибках?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Да, это должно быть возможно.Я не совсем уверен насчет cxxunit, но теоретически это возможно.

  1. Чтобы правильно протестировать объекты Qt, вам, вероятно, потребуется создать / уничтожить объект QApplication в ваших глобальных функциях установки и разрыва.Если вы специально не тестируете функциональность QApplication, вам следует создать только одну для всего запуска тестового приложения.Это позволит вам тестировать части логики виджета, но не так просто внешний вид или интерактивность интерфейса виджета.Кроме того, тестирование определенных элементов может зависеть от запуска цикла событий приложения, что будет более трудным.
  2. Valgrind может сообщать о некоторых ошибках.Он также может сообщать об ошибках с кодом Qt, в частности о статических распределениях, которые оставляются для восстановления приложения.
1 голос
/ 02 декабря 2010

Если вы хотите проверить свой пользовательский интерфейс, я предлагаю использовать инструмент тестирования пользовательского интерфейса, например Squish . Модульные тесты, которые я считаю более подходящими для проверки логики за виджетами, а не за самими виджетами. Если вы действительно хотите провести модульное тестирование своих виджетов Qt, я не думаю, что есть лучшее решение, чем QtTestLib.

Valgrind: есть плагин valgrind для Squish . Я сам этим не пользовался. Конечно, другие модульные тесты можно легко запустить в valgrind, хотя я не знаю ни одного решения, которое бы полностью автоматизировало это. Нужно убедиться в том, что вы действительно подавляете все предупреждения извне, если у вас есть собственный код, чтобы, например, возникла какая-то ошибка. x11 libs не запускает модульный тест.

...