Elixir:
Escrevendo testes
Como fazer:
Elixir usa o ExUnit como seu framework de teste integrado, que é extremamente poderoso e fácil de usar. Aqui está um exemplo básico:
- Crie um novo arquivo de teste no diretório
testdo seu projeto Elixir. Por exemplo, se você está testando um módulo chamadoMathOperations, seu arquivo de teste poderia sertest/math_operations_test.exs.
# test/math_operations_test.exs
defmodule MathOperationsTest do
use ExUnit.Case
# Este é um caso de teste simples para verificar a função de adição
test "a adição de dois números" do
assert MathOperations.add(1, 2) == 3
end
endPara executar seus testes, use o comando mix test no seu terminal. Se a função MathOperations.add/2 adicionar corretamente dois números, você verá uma saída similar a:
..
Finished in 0.03 seconds
1 test, 0 failuresPara testes que envolvem serviços externos ou APIs, você pode querer usar bibliotecas de mock, como o mox, para evitar acionar os serviços reais:
- Adicione
moxàs suas dependências emmix.exs:
defp deps do
[
{:mox, "~> 1.0.0", only: :test},
# outras depêndencias...
]
end- Defina um módulo de mock no seu auxiliar de teste (
test/test_helper.exs):
Mox.defmock(HTTPClientMock, for: HTTPClientBehaviour)- Utilize o mock no seu caso de teste:
# test/some_api_client_test.exs
defmodule SomeAPIClientTest do
use ExUnit.Case
import Mox
# Isso diz ao Mox para verificar se este mock foi chamado como esperado
setup :verify_on_exit!
test "obtém dados da API" do
# Configura a resposta do mock
expect(HTTPClientMock, :get, fn _url -> {:ok, "Resposta Mockada"} end)
assert SomeAPIClient.get_data() == "Resposta Mockada"
end
endAo executar mix test, essa configuração permite isolar seus testes de unidade de dependências externas reais, focando no comportamento do seu próprio código. Esse padrão garante que seus testes sejam executados rapidamente e permaneçam confiáveis, independentemente do status do serviço externo ou da conectividade com a internet.