Quais estruturas existem para testar o código Objective-C? Eu gostaria de um framework que se integre bem com o Xcode.
O Xcode inclui o XCTest, que é semelhante ao OCUnit , uma estrutura de teste de unidade Objective-C, e tem suporte total para executar 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 na Visão Geral do Xcode: Usando Testes Unitários .
De volta ao Xcode 2 dias, eu escrevi uma série de posts do 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.
Finalmente, também escrevi alguns posts sobre como escrever testes para interfaces de usuário do Cocoa; A maneira como o Cocoa é estruturado o torna relativamente simples, porque você não precisa girar um loop de events ou algo assim na maioria dos casos.
Isso possibilita 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 exibição.
Confira GHUnit por Gabriel Handford:
“Os objectives do GHUnit são:
Executa testes unitários no XCode, permitindo que você utilize totalmente o Depurador XCode. Uma interface gráfica simples para ajudá-lo a visualizar seus testes. Mostrar rastreios de pilha. Ser 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 testes da checkbox de ferramentas do Google para o iPhone, e está funcionando muito bem para mim.
google-toolbox-for-mac
Confira o OCUnit . A rede de desenvolvedores da Apple tem uma ótima introdução .
Observe que o projeto do Google Toolbox para Mac (GTM) simplesmente amplia / amplia o framework SenTestingKit da Apple (que é, ele mesmo, baseado no OCUnit). Como dizem no site do projeto:
O GTM tem vários aprimoramentos no SenTestingKit padrão, permitindo que você faça testes unitários da interface do usuário, teste de unidade de binding automatizada, rastreamento de log e testes de unidade no iPhone, bem como ferramentas para testes estáticos e dynamics 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 do usuário. Ele suporta o teste tanto da imagem e / ou estado interno de quase todos os objects de interface do usuário Cocoa / UIKit padrão, e torna mais fácil para você estender esse suporte para seus próprios objects 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 é o framework de testes mais avançado para o Objective-C. Eu fiz um resumo de estruturas de teste no meu blog. É o mais flexível em termos de implantação (iphone, simulador ou mac os nativo) e afirma resources. Como é baseado no GTM, ele herda todas as vantagens do GTM sobre o SenTestingKit, mas também adiciona muito mais. Outro bônus é que está sendo mantido muito ativamente.
Eu fiz um esforço para integrar o OCMock no GHUnit, ele funciona muito bem !. Você pode obter o código no github .
Eu percebo que esta é uma pergunta antiga, mas se você preferir testar no estilo do BDD (rspec, Jasmine, etc.) sobre testes no estilo xUnit (Test :: Unit, JSUnit, JUnit, etc.), então você pode verificar o Cedar . Cedar traz o teste de estilo BDD para Objective-C, agora que a linguagem suporta closures.
Estamos felizes em usar o Cedar para nossos projetos iOS no Pivotal Labs e estamos trabalhando ativamente para melhorá-lo. Qualquer feedback ou sugestão 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 são. A cobertura básica de código de linha e filial pode ser gerada com a ferramenta GCOV . Se você quer gerar bons relatórios de cobertura HTML, há LCOV e ZCOV que fazem exatamente isso.
Eu recomendo gh-unit, ele tem uma boa interface gráfica para resultados de testes.
O suporte a Testes Unitários incluído no xcode (por sua configuração simples) combinado com o ocrunner (para alguma bondade de Autotest / Growl) é atualmente a minha configuração favorita de Teste de Unidade Obj-C.
aqui é um monte deles
List_of_unit_testing_frameworks em Objective-C
Sen: te (o criador da estrutura de testes incluída no Xcode) explica como usar o OCUnit com um projeto do iPhone: simple-iphone-ipad-unit-test .
Matt Gallagher da Cocoa with Love tem um artigo muito bom sobre testes unitários.
Eu sugiro olhar para Kiwi, uma estrutura de teste de código aberto BDD para iOS: Kiwi
Confira a WIKI do projeto para iniciar ou obter o livro de Daniel Steinberg “Test Driving iOS Development 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 class de teste de unidade. Envolve o GTM.
Você pode, literalmente, soltá-lo em um projeto ativo e começar a adicionar testes de unidade dentro de 3 minutos (ou menos).
O Specta é um moderno framework TDD (Test Driven Development) / BDD (Behavior Driven Development) que é executado em cima do XCTest. Suporta testes unitários para projetos iOS e Mac OS X.
Espero que vc possa usar o ‘SenTestKit’, do qual vc pode testar todo e qualquer método.