Testes na trilha de Objective-C

Aprenda a testar seus exercícios de Objective-C no Exercism


O Exercism baixa apenas um arquivo de teste. Você vai precisar criar manualmente o cabeçalho e o arquivo-fonte associados ao exercício. Você vai precisar gerar um arquivo de projeto do Xcode com o arquivo de teste, o arquivo de cabeçalho (.h) e o arquivo-fonte (.m). Como alternativa, você pode usar um utilitário test runner, descrito abaixo.

Criando o projeto no Xcode

  • Abra o Xcode e crie um novo projeto.
  • Selecione OS X > Application e depois Command Line Tool.
  • Clique em Next e dê um nome ao projeto; é recomendável usar ExerciseName.
  • Clique em Next e salve o projeto no diretório de exercícios do Exercism.
  • Agora que o projeto foi criado, clique em Editor > Add Target.
  • Selecione OS X > Test e escolha OS X Unit Testing Bundle.
  • Dê ao target o nome ExerciseName Tests.
  • No painel à esquerda (conhecido como navigator), abra o Project navigator, expanda a pasta ExerciseName Tests e abra o arquivo ExerciseName_Tests.m.
  • Substitua o conteúdo dele pelo arquivo de teste que você baixou do Exercism.
  • Nesse arquivo, substitua todas as ocorrências de "test_suite" por "ExerciseName_Tests".
  • Navegue até a File Template Library no painel à direita (ou use CTRL+OPTION+CMD+1) e arraste o template Cocoa Class para a pasta ExerciseName_Tests no Project navigator.
  • Dê a ele o nome ExerciseName e selecione ExerciseName Tests como target.
  • Agora você terá dois novos arquivos no seu diretório ExerciseName_Tests: ExerciseName.h e ExerciseName.m.
  • Clique no seu projeto no Project navigator.
  • Clique em ExerciseName Tests na lista de targets.
  • Selecione Build Phases na navegação do editor.
  • Confirme que seus dois arquivos .m estão na lista Compile Sources.
  • Use CMD+5 para ir até o Test navigator.
  • Clique com o botão direito no bundle chamado ExerciseName Tests e clique em Enable ExerciseName_Tests.
  • Rode os testes clicando no triângulo apontado para a direita que aparece quando você passa o mouse sobre o bundle no Test navigator, ou use CMD+U.

Os testes serão executados pelo Xcode.

Observação: Se você receber o erro "No visible @interface for ExerciseName declares the selector ExerciseSelector," você seguiu os passos corretamente, mas ainda não escreveu nada no seu arquivo de cabeçalho ou de implementação. Depois de declarar seu método no arquivo .h e defini-lo no arquivo .m, seus testes devem gerar erros mais úteis, que vão te ajudar a concluir o exercício. Leia esta introdução às classes de Objective-C para informações mais detalhadas.

Um test runner

Uma alternativa a gerar o arquivo de projeto manualmente é usar um utilitário test runner escrito em Ruby, objc, que vai criar um arquivo de projeto para você com o arquivo de teste, o arquivo de cabeçalho e o arquivo-fonte.

$ gem install objc

Rode os testes com:

$ objc -x ExerciseName

(Observe a flag -x/--xcodebuild, que especifica o uso do xcodebuild em vez do xctool. Este último não funciona com as versões mais recentes do Xcode.)

O utilitário objc usa o nome do exercício para localizar o arquivo de teste, ExerciseNameTest.m, o arquivo de cabeçalho, ExerciseName.h, e o arquivo-fonte ExerciseName.m. Os arquivos são inseridos em um projeto temporário do Xcode e então o xcodebuild é usado para rodar os testes do projeto.

Embora o objc faça com que você nunca precise abrir o Xcode para concluir esses exercícios, as mensagens de erro e o feedback pela linha de comando não são tão claros quanto pela interface do Xcode.