Elixir:
टेस्ट लिखना
कैसे करें:
एलिक्सिर अपने निर्मित परीक्षा ढांचे के रूप में ExUnit का उपयोग करता है, जो अत्यंत शक्तिशाली और उपयोग में आसान है। यहाँ एक बुनियादी उदाहरण है:
- अपनी एलिक्सिर परियोजना की
test
निर्देशिका में एक नई परीक्षा फाइल बनाएँ। उदाहरण के लिए, यदि आप एक मॉड्यूल नाम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
जैसे मॉक लाइब्रेरियों का उपयोग करना चाहेंगे:
mix.exs
में अपने निर्भरताओं मेंmox
जोड़ें:
defp deps do
[
{:mox, "~> 1.0.0", only: :test},
# अन्य deps...
]
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, "Mocked response"} end)
assert SomeAPIClient.get_data() == "Mocked response"
end
end
mix test
चलाते समय, यह सेटअप आपको वास्तविक बाहरी निर्भरताओं से अपने यूनिट परीक्षणों को अलग करने की अनुमति देता है, अपने स्वयं के कोड के व्यवहार पर ध्यान केंद्रित करता है। यह पैटर्न सुनिश्चित करता है कि आपके परीक्षण जल्दी और विश्वसनीय रूप से चलते हैं, बाहरी सेवा की स्थिति या इंटरनेट कनेक्टिविटी के बावजूद।