Elixir:
Tests Schreiben
Wie geht das:
Elixir verwendet ExUnit als sein eingebautes Testframework, welches extrem leistungsfähig und einfach zu verwenden ist. Hier ist ein einfaches Beispiel:
- Erstellen Sie eine neue Testdatei im
test-Verzeichnis Ihres Elixir-Projekts. Wenn Sie beispielsweise ein Modul namensMathOperationstesten, könnte Ihre Testdateitest/math_operations_test.exssein.
# test/math_operations_test.exs
defmodule MathOperationsTest do
use ExUnit.Case
# Dies ist ein einfacher Testfall, um die Additionsfunktion zu überprüfen
test "die Addition von zwei Zahlen" do
assert MathOperations.add(1, 2) == 3
end
endUm Ihre Tests auszuführen, verwenden Sie den Befehl mix test in Ihrem Terminal. Wenn die Funktion MathOperations.add/2 zwei Zahlen korrekt addiert, sehen Sie eine Ausgabe wie folgt:
..
Abgeschlossen in 0.03 Sekunden
1 Test, 0 FehlerFür Tests, die externe Dienste oder APIs involvieren, möchten Sie vielleicht Mock-Bibliotheken wie mox verwenden, um echte Dienste zu vermeiden:
- Fügen Sie
moxIhren Abhängigkeiten inmix.exshinzu:
defp deps do
[
{:mox, "~> 1.0.0", nur: :test},
# andere Abhängigkeiten...
]
end- Definieren Sie ein Mock-Modul in Ihrem Testhelfer (
test/test_helper.exs):
Mox.defmock(HTTPClientMock, für: HTTPClientBehaviour)- Verwenden Sie den Mock in Ihrem Testfall:
# test/some_api_client_test.exs
defmodule SomeAPIClientTest do
use ExUnit.Case
import Mox
# Dies sagt Mox, dass dieser Mock wie erwartet aufgerufen wurde
setup :verify_on_exit!
test "erhält Daten von der API" do
# Richten Sie die Mock-Antwort ein
expect(HTTPClientMock, :get, fn _url -> {:ok, "Gefälschte Antwort"} end)
assert SomeAPIClient.get_data() == "Gefälschte Antwort"
end
endWenn Sie mix test ausführen, ermöglicht diese Einrichtung, dass Sie Ihre Unit-Tests von echten externen Abhängigkeiten isolieren, wobei der Fokus auf das Verhalten Ihres eigenen Codes liegt. Dieses Muster stellt sicher, dass Ihre Tests schnell laufen und zuverlässig bleiben, unabhängig vom Status externer Dienste oder der Internetverbindung.