Testes Swift: por onde começar para um desenvolvedor iniciante

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que testar não é apenas um "checkmark", mas seu salva-vidas

\n\n

Imagine: você escreveu um aplicativo incrível em Swift, tudo funciona, seus amigos estão encantados. Mas passa uma semana, você adiciona um novo recurso — e pronto! Tudo quebra. Familiar? Se não — ou você é um gênio, ou ainda não enfrentou o desenvolvimento real. Testar código não é uma obrigação chata, mas uma ferramenta que economiza horas de nervos e faz de você um desenvolvedor confiante.

\n\n

Neste artigo, vamos explorar por onde começar os testes em Swift se você é iniciante. Você aprenderá o que é XCTest, como escrever testes unitários e testes de UI, e obterá exemplos de código prontos. Vamos lá!

\n\n

O que são testes em Swift e por que são necessários

\n\n

Testar é o processo de verificar se seu código faz exatamente o que você espera. No mundo Swift, o principal framework para isso é o XCTest. Ele está integrado ao Xcode e permite escrever testes de qualquer nível: desde verificar uma única função até simular cliques de botões pelo usuário.

\n\n

Aqui estão três razões principais para dominar os testes em Swift agora mesmo:

\n
    \n
  • Confiança no código. Você para de ter medo de mudar ou refatorar algo — os testes te protegem.
  • \n
  • Economia de tempo. Melhor gastar 10 minutos em um teste do que 2 horas procurando um bug em produção.
  • \n
  • Documentação. Testes são documentação viva do seu código. Um novo desenvolvedor (ou você daqui a um mês) entenderá a lógica sem palavras extras.
  • \n
\n\n

Para iniciantes, testar iOS pode parecer complexo, mas na verdade o primeiro passo é feito em 5 minutos.

\n\n

Configuração do ambiente: primeiro teste em 5 minutos

\n\n

Abra o Xcode e crie um novo projeto (File → New → Project → App). Certifique-se de que a opção Include Tests esteja ativa. O Xcode criará automaticamente dois alvos:

\n
    \n
  • YourAppTests — para testes unitários.
  • \n
  • YourAppUITests — para testes de UI.
  • \n
\n\n

Se o projeto já existir, adicione o alvo de teste manualmente: File → New → Target → iOS Unit Testing Bundle.

\n\n

Agora clique no arquivo YourAppTests.swift. Você verá um esboço de classe herdada de XCTestCase. Apague tudo e escreva seu primeiro teste:

\n\n
import XCTest\n@testable import YourApp\n\nfinal class FirstTests: XCTestCase {\n\n    func testExample() {\n        let result = 2 + 2\n        XCTAssertEqual(result, 4, "A matemática falhou!")\n    }\n}\n
\n\n

Clique no losango à esquerda da linha com func testExample e selecione Test. Se aparecer um checkmark verde — você acabou de escrever seu primeiro teste unitário em Swift! Parabéns.

\n\n

Observe o @testable import YourApp. Esta é a linha chave: ela abre acesso às classes internas do seu aplicativo para que os testes possam vê-las.

\n\n

Testes unitários: verificando a lógica do aplicativo

\n\n

Testes unitários são a base. Eles verificam funções, métodos ou classes individuais. Vamos escrever um teste para uma calculadora simples.

\n\n

Criando o código para testar

\n\n

Adicione um novo arquivo Swift ao alvo principal (não aos testes!) com a classe:

\n\n
import Foundation\n\nstruct Calculator {\n    func add(_ a: Int, _ b: Int) -> Int {\n        return a + b\n    }\n    \n    func divide(_ a: Int, _ b: Int) throws -> Int {\n        guard b != 0 else {\n            throw CalculationError.divisionByZero\n        }\n        return a / b\n    }\n}\n\nenum CalculationError: Error {\n    case divisionByZero\n}\n
\n\n

Escrevendo os testes

\n\n

No arquivo de testes (lembre-se, ele está no grupo YourAppTests) escrevemos:

\n\n
import XCTest\n@testable import YourApp\n\nfinal class CalculatorTests: XCTestCase {\n\n    var calculator: Calculator!\n\n    override func setUpWithError() throws {\n        calculator = Calculator()\n    }\n\n    override func tearDownWithError()                

Blogs

Book Recommendations