Quais estruturas existem para testar o código Objective-C da unidade? Gostaria de uma estrutura que se integre perfeitamente ao Apple Xcode.
Quais estruturas existem para testar o código Objective-C da unidade? Gostaria de uma estrutura que se integre perfeitamente ao Apple Xcode.
Respostas:
O Xcode inclui o XCTest, que é semelhante ao OCUnit , uma estrutura de teste de unidade do Objective-C, e tem suporte total para a execução de testes de unidade baseados no XCTest como parte do processo de criação do seu projeto. O suporte ao teste de unidade do Xcode é descrito em Visão geral do Xcode: Usando testes de unidade .
Nos 2 dias do Xcode, escrevi uma série de postagens no blog sobre como executar algumas tarefas comuns com o teste de unidade do Xcode:
Apesar de usar o OCUnit em vez do 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 maneira como o cacau é estruturado o torna relativamente simples, porque na maioria dos casos você não precisa girar um loop de eventos ou algo assim.
Isso possibilita o desenvolvimento orientado a testes, não apenas para o código no nível do modelo, mas também para o código no nível do controlador e até no nível de visualização.
Confira GHUnit de Gabriel Handford:
"Os objetivos do GHUnit são:
Executa testes de unidade no XCode, permitindo que você utilize totalmente o depurador do XCode. Uma GUI simples para ajudá-lo a visualizar seus testes. Mostrar rastreamentos de pilha. Seja instalável como uma estrutura (para aplicativos Cocoa) com uma configuração de destino simples (ou não); ou fácil de empacotar no seu projeto do iPhone ".
Comecei a usar o equipamento de teste da caixa de ferramentas do Google para iPhone, e está funcionando muito bem para mim.
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 se costuma dizer no site do projeto:
O GTM possui vários aprimoramentos no SenTestingKit padrão, permitindo que você faça testes de unidade de interface do usuário, testes automatizados de unidade de encadernação, rastreamento de log e teste de unidade no iPhone, além de ferramentas para realizar testes estáticos e dinâmicos de seu código.
Observe o seguinte comentário sobre o teste da interface do usuário:
O GTM possui amplo suporte para testes de unidade de interface com o usuário. Ele suporta o teste da imagem e / ou do estado interno de quase todos os objetos de interface de usuário padrão do Cocoa / UIKit e facilita a extensão desse suporte aos seus próprios objetos de interface do usuário.
Consulte a página " Verificação de código e teste de unidade " para obter instruções sobre como usá-lo.
Cheguei à conclusão de que o GHUnit é a estrutura de teste mais avançada para o Objective-C. Eu fiz um resumo das estruturas de teste no meu blog. É o mais flexível em termos de implantação (iphone, simulador ou mac os nativo) e recursos de afirmação. Por ser baseado no GTM, ele herda todas as vantagens do GTM sobre o SenTestingKit, mas também acrescenta muito mais. Outro bônus é que ele está sendo mantido de forma muito ativa.
Eu realizei um esforço para integrar o OCMock ao GHUnit, funciona muito bem! Você pode obter o código no github .
Sei que essa é 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 dar uma olhada no Cedar . O Cedar leva o teste no estilo BDD ao Objective-C, agora que o idioma suporta fechamentos.
Felizmente, estamos usando o Cedar para nossos projetos iOS no Pivotal Labs e estamos trabalhando ativamente para aprimorá-lo. Quaisquer comentários ou sugestões são bem-vindos em cedar-discuss@googlegroups.com
Eu também recomendaria o uso de ferramentas de cobertura para ver qual parte do código é coberta com testes de unidade e quais não. A cobertura básica de linha e código de ramificação pode ser gerada com a ferramenta GCOV . Se você deseja gerar bons relatórios de cobertura HTML, existem LCOV e ZCOV que fazem exatamente isso.
Eu recomendo gh-unit, ele tem uma boa interface gráfica para os resultados dos testes.
Atualmente , o suporte ao teste de unidade, incluído no xcode (para sua configuração simples) combinado com o ocrunner (para algumas vantagens de autoteste / Growl), é atualmente minha configuração de teste de unidade Obj-C favorita.
aqui está um monte deles
Sen: te (o criador da estrutura de teste incluída no Xcode) explica como usar o OCUnit em um projeto do iPhone: simple-iphone-ipad-unit-test .
Matt Gallagher, do Cocoa with Love, tem um artigo muito bom sobre testes de unidade.
Eu sugeriria olhar para o Kiwi, uma estrutura de teste de BDD de código aberto para iOS: Kiwi
Confira o WIKI do projeto para iniciar ou obter o livro de Daniel Steinberg, "Testando o Desenvolvimento iOS com Kiwi" test-driving-ios-development
Eu uso o SimpleUnitTest funciona com bibliotecas do 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 o GTM.
Você pode literalmente colocá-lo em um projeto ativo e começar a adicionar testes de unidade em 3 minutos (ou menos).
O Specta é uma estrutura moderna de TDD (Test Driven Development) / BDD (Behavior Driven Development) que roda sobre o XCTest. Ele suporta testes de unidade para projetos iOS e Mac OS X.