Testando com o módulo QTestLib do Qt
Comecei a escrever alguns testes com o sistema de teste de unidade do Qt.
Como você costuma organizar os testes? É uma classe de teste por uma classe de módulo ou você testa o módulo inteiro com uma única classe de teste? Os documentos Qt sugerem seguir a estratégia anterior.
Eu quero escrever testes para um módulo. O módulo fornece apenas uma classe que será usada pelo usuário do módulo, mas há muita lógica abstraída em outras classes, que eu também gostaria de testar, além de testar a classe pública.
O problema é que a maneira proposta pela Qt de executar testes envolveu aQTEST_MAIN
macro:
QTEST_MAIN(TestClass)
#include "test_class.moc"
e, eventualmente, um programa de teste é capaz de testar apenas uma classe de teste. E é meio ruim criar projetos de teste para todas as classes do módulo.
Claro, pode-se dar uma olhada noQTEST_MAIN
macro, reescreva-a e execute outras classes de teste. Mas há algo que funciona imediatamente?
Até agora eu faço isso manualmente:
#include "one.h"
#include "two.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
TestOne one;
QTest::qExec(&one, argc, argv);
TestOne two;
QTest::qExec(&two, argc, argv);
}