Pergunta

É possível usar cxxunit ou qualquer outra estrutura de teste de unidade (excluindo Qttestlib) para testar os widgets QT?

Se sim, então há mais duas perguntas:

  1. Como?
  2. Como estou executando testes de unidade usando Valgrind, isso pode relatar alguns erros?
Foi útil?

Solução

Sim, deve ser possível. Não tenho certeza sobre o CXXUnit especificamente, mas é teoricamente possível.

  1. Para testar adequadamente os objetos QT, você provavelmente precisará criar/destruir um objeto Qapplication em suas funções globais de configuração e desmontagem. A menos que você esteja testando especificamente a funcionalidade de qapplication, você deve criar apenas um para toda a execução do aplicativo de teste. Isso permitirá que você teste partes da lógica do widget, mas não facilmente a aparência ou a interatividade da interface do usuário do widget. Além disso, testar determinados itens pode confiar em ter o loop de eventos do aplicativo em execução, o que seria mais difícil.
  2. Valgrind pode relatar alguns erros. Também pode relatar erros com o código do QT, em particular alocações estáticas que são deixadas para a denúncia do aplicativo para recuperar.

Outras dicas

Se você quiser testar sua interface do usuário, sugiro usar uma ferramenta de teste de interface do usuário como Mole. Testes de unidade, acho mais adequado para testar a lógica por trás dos widgets, não os próprios widgets. Se você realmente deseja testar os widgets do QT, não acho que exista uma solução melhor que o QtTestlib.

Valgrind: Existe um Valgrind Plugin para mole. Eu não usei esse eu mesmo. É claro que outros testes de unidade podem ser facilmente executados em Valgrind, embora eu não conheça nenhuma solução que automatize completamente isso. É preciso ter que realmente suprimir todos os avisos de fora um possui um código para que algum erro no por exemplo, X11 LIBS, não acione o teste de unidade a falhar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top