Pergunta

Quais estruturas existem para teste de unidade de código Objective-C?Eu gostaria de uma estrutura que se integrasse perfeitamente ao Apple Xcode.

Foi útil?

Solução

O Xcode inclui o XCTest, que é semelhante ao OCUnit, uma estrutura de teste de unidade Objective-C e tem suporte completo para executar testes de unidade baseados em XCTest como parte do processo de construção do seu projeto.O suporte a testes de unidade do Xcode é descrito no Visão geral do Xcode:Usando testes unitários.

Nos dois dias do Xcode, escrevi uma série de postagens no blog sobre como realizar algumas tarefas comuns com testes de unidade do Xcode:

Apesar de usar OCUnit em vez de XCTest, os conceitos são basicamente os mesmos.

Por fim, também escrevi alguns posts sobre como escrever testes para interfaces de usuário do Cocoa;a forma como o Cocoa é estruturado torna-o relativamente simples, porque você não precisa girar um loop de eventos ou algo parecido na maioria dos casos.

Isso torna possível fazer o desenvolvimento orientado a testes não apenas para o código em nível de modelo, mas também para o código em nível de controlador e até mesmo em nível de visualização.

Outras dicas

Confira GHUnit por Gabriel Handford:

"Os objetivos do GHUnit são:

Executa testes de unidade no Xcode, permitindo que você utilize totalmente o depurador Xcode.Uma GUI simples para ajudá -lo a visualizar seus testes.Mostre traços de pilha.Ser instalável como uma estrutura (para aplicativos de cacau) com uma configuração de destino simples (ou não);ou fácil de empacotar em seu projeto de iPhone. "

Comecei a usar o equipamento de teste da caixa de ferramentas do Google para iPhone e está funcionando muito bem para mim.

google-toolbox-para-mac

Confira OCUnit.A rede de desenvolvedores da Apple tem uma ótima introdução.

Observe que o projeto Google Toolbox for Mac (GTM) simplesmente estende/aumenta a estrutura SenTestingKit da Apple (que é baseada no OCUnit).Como dizem no site do projeto:

O GTM possui vários aprimoramentos para o Standard SentEstingKit, permitindo que você faça testes de unidade de interface do usuário, teste de unidade de ligação automatizada, rastreamento de log e teste de unidade no iPhone, além de ferramentas para fazer testes estáticos e dinâmicos do seu código.

Observe o seguinte comentário sobre testes de interface de usuário:

O GTM possui suporte extensivo para testes de unidade de interface do usuário.Ele suporta testar o estado de imagem e/ou interno de quase todos os objetos padrão da interface do cacau/Ui e facilita a extensão desse suporte aos seus próprios objetos de interface do usuário.

Veja o "Verificação de código e teste unitário" para obter instruções sobre como usá-lo.

Cheguei à conclusão de que GHUnit é a estrutura de teste mais avançada para Objective-C.Eu fiz um arredondar para cima de testes de frameworks no meu blog.É o mais flexível em termos de implantação (iphone, simulador ou nativo do Mac OS) e recursos de afirmação.Por ser baseado no GTM, ele herda todas as vantagens do GTM sobre o SenTestingKit, mas também adiciona muito mais.Outro bônus é que ele está sendo mantido de forma muito ativa.

Tenho conduzido esforços para integrar OCMock no GHUnit, funciona muito bem!Você pode obter o código GitHub.

Sei que esta é uma pergunta antiga, mas se você preferir testes no estilo BDD (rspec, Jasmine, etc.) em vez de testes no estilo xUnit (Test::Unit, JSUnit, JUnit, etc.), considere verificar Cedro.Cedar traz testes no estilo BDD para Objective-C, agora que a linguagem suporta fechamentos.

Estamos felizes em usar o Cedar para nossos projetos iOS em Laboratórios essenciais, e estamos trabalhando ativamente para melhorá-lo.Qualquer feedback ou sugestão é bem-vindo em cedar-discuss@googlegroups.com

Eu também recomendaria usar ferramentas de cobertura para ver quais partes do código são cobertas por testes de unidade e quais não são.A cobertura básica de linha e código de filial pode ser gerada com o COV ferramenta.Se você deseja gerar bons relatórios de cobertura HTML, existem LCOV e ZCOV que fazem exatamente isso.

Eu recomendo o gh-unit, ele tem uma interface gráfica agradável para resultados de testes.

http://github.com/gabriel/gh-unit/tree/master

O Suporte para teste de unidade incluído no xcode (pela sua configuração simples) combinado com ocrunner (para alguns benefícios do autoteste/Growl) é atualmente minha configuração favorita de teste de unidade Obj-C.

Sen:te (o criador da estrutura de testes incluída no Xcode) explica como usar o OCUnit com um projeto de iPhone: teste de unidade simples-iphone-ipad.

Matt Gallagher de Cocoa with Love tem um artigo muito bom em testes unitários.

Eu sugeriria dar uma olhada no Kiwi, uma estrutura de teste BDD de código aberto para iOS:kiwi

Confira o WIKI do projeto para iniciar ou obtenha o livro de Daniel Steinberg "Test Driving iOS Development with Kiwi"test-drive-ios-desenvolvimento

Eu uso SimpleUnitTest que funciona com bibliotecas de iPhone e iPad.

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

Ele vem com um modelo Xcode de teste de unidade para adicionar facilmente uma classe de teste de unidade.Envolve GTM.

Você pode literalmente colocá-lo em um projeto ativo e começar a adicionar testes de unidade em 3 minutos (ou menos).

Espetacular é uma estrutura moderna de TDD (Test Driven Development)/BDD (Behavior Driven Development) que roda sobre o XCTest.Suporta testes de unidade para projetos iOS e Mac OS X.

Espero que você possa usar o 'SenTestKit', a partir do qual você pode testar cada método.

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