Elixir:
כתיבת בדיקות

איך לעשות:

Elixir משתמשת ב-ExUnit כמערכת הבדיקות המובנית שלה, אשר חזקה במיוחד וקלה לשימוש. להלן דוגמה בסיסית:

  1. צור קובץ בדיקה חדש בתיקית 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, כדי למנוע התנגשות עם שירותים אמיתיים:

  1. הוסף את mox לתלות שלך ב-mix.exs:
defp deps do
  [
    {:mox, "~> 1.0.0", only: :test},
    # תלויות אחרות...
  ]
end
  1. הגדר מודול מזויף בעזר של הבדיקות שלך (test/test_helper.exs):
Mox.defmock(HTTPClientMock, for: HTTPClientBehaviour)
  1. השתמש במזויף במקרה הבדיקה שלך:
# 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, ההתקנה הזו מאפשרת לך לבודד את הבדיקות היחידה שלך מתלות חיצוניות אמיתיות, ולהתמקד בהתנהגות של הקוד שלך. תבנית זו מבטיחה שהבדיקות שלך רצות מהר ונשארות אמינות, ללא תלות בסטטוס של שירותים חיצוניים או בחיבור לאינטרנט.