Elixir:
כתיבת בדיקות
איך לעשות:
Elixir משתמשת ב-ExUnit כמערכת הבדיקות המובנית שלה, אשר חזקה במיוחד וקלה לשימוש. להלן דוגמה בסיסית:
- צור קובץ בדיקה חדש בתיקית
test
של פרויקט Elixir שלך. לדוגמה, אם אתה מבצע בדיקה למודול בשםMathOperations
, הקובץ שלך יכול להיותtest/math_operations_test.exs
.
# test/math_operations_test.exs
defmodule MathOperationsTest do
use ExUnit.Case
# זו תיק לבדיקה פשוטה לבדוק את פונקציית החיבור
test "החיבור של שני מספרים" do
assert MathOperations.add(1, 2) == 3
end
end
כדי להריץ את הבדיקות שלך, השתמש בפקודה mix test
בטרמינל שלך. אם פונקציית MathOperations.add/2
מחברת נכון שני מספרים, תראה פלט דומה ל:
..
סיים ב-0.03 שניות
1 בדיקה, 0 כשלונות
לבדיקות שמערבות שירותים חיצוניים או API-ים, ייתכן ותרצה להשתמש בספריות מזויפות, כמו mox
, כדי למנוע התנגשות עם שירותים אמיתיים:
- הוסף את
mox
לתלות שלך ב-mix.exs
:
defp deps do
[
{:mox, "~> 1.0.0", only: :test},
# תלויות אחרות...
]
end
- הגדר מודול מזויף בעזר של הבדיקות שלך (
test/test_helper.exs
):
Mox.defmock(HTTPClientMock, for: HTTPClientBehaviour)
- השתמש במזויף במקרה הבדיקה שלך:
# test/some_api_client_test.exs
defmodule SomeAPIClientTest do
use ExUnit.Case
import Mox
# זה אומר ל-Mox לוודא שהמזויף הזה נקרא כצפוי
setup :verify_on_exit!
test "מקבל נתונים מה-API" do
# הכן את תגובת המזויף
expect(HTTPClientMock, :get, fn _url -> {:ok, "תגובה מזויפת"} end)
assert SomeAPIClient.get_data() == "תגובה מזויפת"
end
end
כאשר מריצים את mix test
, ההתקנה הזו מאפשרת לך לבודד את הבדיקות היחידה שלך מתלות חיצוניות אמיתיות, ולהתמקד בהתנהגות של הקוד שלך. תבנית זו מבטיחה שהבדיקות שלך רצות מהר ונשארות אמינות, ללא תלות בסטטוס של שירותים חיצוניים או בחיבור לאינטרנט.