Teste de integração com iOS: KIF ou bwoken?

Cenário

A partir do Instruments 4.2 (fornecido com o Xcode 4.2, outubro de 2011), a Apple fornece um instrumento de “automação”, que permite a você escrever scripts de teste em JavaScript que interagem com um dispositivo executando seu aplicativo. No geral, porém, a interface é muito complicada, uma desvantagem que é corrigida em parte pelo bwoken . O bwoken permite que você execute seus testes de integração com um comando simples de teste rake . A configuração também é bastante simples – apenas importe as tarefas bwoken em um Rakefile vazio e execute rake bwoken: init . Fácil como uma torta!

Na verdade, escrever os testes é muito mais chato. Leva algum tempo para se acostumar com a API para acessar os elementos da IU em JS e tive problemas ao conectar com o simulador ao executar testes – às vezes, o simulador nunca iniciava ou ficava suspenso no meio do teste. O JS em si também não é muito semântico. Você pode jasmine-iphone para fazer seus testes lerem melhor, mas achei que configurar tudo isso é uma tarefa árdua.

Cenário

A alternativa ao bwoken é o KIF . Como o bwoken , ele usa elementos de acessibilidade, mas o faz usando APIs não oficiais (não é um problema para envio à App Store, contanto que você os empacote separadamente). O KIF já existe há algum tempo e parece muito mais estável. Você também pode escrever todos os seus testes em Xcode usando Objective-C, então descobri que não precisava alternar entre editores com tanta frequência quanto fazia usando bwoken . Os testes também são executados por meio do Xcode, portanto, os problemas para encontrar um dispositivo não parecem ocorrer com muita frequência, se é que ocorrem. A configuração também é bastante direta, graças ao KIF README e ao CocoaPods .

Tive experiência com o uso do KIF no lançamento de um aplicativo em grande escala e não me decepcionou. bwoken parece ser a escolha mais legítima, já que é apenas um invólucro em torno de uma API de teste oficial, mas devido a questões de confiabilidade, acho que vou ficar com o KIF por enquanto.


Para obter informações sobre soluções de teste além das duas acima, confira esta postagem incrível no Stack Overflow .