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, ההתקנה הזו מאפשרת לך לבודד את הבדיקות היחידה שלך מתלות חיצוניות אמיתיות, ולהתמקד בהתנהגות של הקוד שלך. תבנית זו מבטיחה שהבדיקות שלך רצות מהר ונשארות אמינות, ללא תלות בסטטוס של שירותים חיצוניים או בחיבור לאינטרנט.