Pergunta

Estou olhando para abordagens para o código de sistemas incorporado de teste de unidade escrito em C.

Ao mesmo tempo, também estou procurando uma boa estrutura UT que eu possa usar. A estrutura deve ter um número razoavelmente pequeno de dependências.

Algum excelente produto de código aberto que possui um bom UTS?

EDITAR:

Pessoal, obrigado pelas respostas -eu verdade aprecie -os, mas isso não diretamente responda a minha pergunta:

Você conhece algum código de código aberto que use testes de unidade C? Estou procurando ver como é feito, para que eu possa aprender algo com o código ...

Foi útil?

Solução

Editar: Há uma lista de projeto usando a estrutura de teste de verificação como unidade de teste no Verifique a página do projeto. Alguns links estão desatualizados, mas você pode navegar na fonte do teste de unidade de pigmento e SCEW ; É preciso baixar a fonte para outros.


minunit não possui dependências e pode ser usado como base para construir sua própria estrutura.

No que diz respeito a uma abordagem, começo a partir das funções de nível mais baixo (as folhas). Muitas vezes, quando estou testando a função de nível superior, eles invocam as funções de nível inferior. Isso não é um problema, pois as funções mais baixas já foram testadas.

Eu também modularizo o código como "objeto" ou tabela de objetos. As funções de stub permitem testes isoladamente do hardware ou de outros componentes.

Eu me livro da estática com uma definição que os remove, ou incluo o arquivo de origem que contém as funções a serem testadas no arquivo de origem dos testes de unidade.

#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif

Sem ciência de foguetes aqui, mas isso faz o truque.

Uma última coisa, teste o comportamento, não a implementação para que os testes de unidade não quebrem quando a implementação mudar.

Outras dicas

Modularize seu código de tal maneira que existe uma camada fina na parte inferior que sabe sobre os detalhes do hardware subjacente. Essa camada pode ser ridicularizada em um PC normal. Dessa forma, você pode usar bibliotecas de teste de unidade normais para desenvolvimento de desktop para testar todo o código, exceto a camada inferior fina.

Minha experiência no desenvolvimento de software incorporado para Linux está usando C ++ e não Plain C. Usamos CPPUNIT para testes de unidade.

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