Test Fixtures এবং Assertion Functions

Computer Programming - ক্লোজার (Clojure) Clojure Test Writing (Unit Testing in Clojure) |
261
261

Test Fixtures এবং Assertion Functions in Clojure

Clojure-এ Test Fixtures এবং Assertion Functions হল সফটওয়্যার টেস্টিংয়ের দুটি গুরুত্বপূর্ণ অংশ। টেস্টিং কোডে ফাংশনালিটি যাচাই করার জন্য এই দুটি টুল ব্যবহার করা হয় যাতে সফটওয়্যারের ভুল বা ত্রুটি কমানো যায়। Clojure-এ টেস্টিং করার জন্য সাধারণভাবে clojure.test লাইব্রেরি ব্যবহার করা হয়, যা টেস্টিংয়ের জন্য ফিক্সচার (fixtures) এবং অ্যাসারশন (assertions) ফাংশন প্রদান করে।


১. Test Fixtures

Test Fixtures হল এমন কোড যা টেস্টের আগে বা পরে চলতে পারে এবং প্রাথমিক সেটআপ বা ক্লিনআপের জন্য ব্যবহৃত হয়। এর মাধ্যমে টেস্টগুলোকে নির্দিষ্ট একটি পরিবেশে চালানো যায় এবং টেস্টগুলি শেষ হওয়ার পর প্রয়োজনীয় রিসোর্সগুলি পরিষ্কার করা যায়।

ফিক্সচার সাধারণত ডেটাবেস সংযোগ তৈরি করা, ফাইল সিস্টেম প্রস্তুত করা, বা অন্যান্য প্রস্তুতি কাজের জন্য ব্যবহৃত হয়।

সিনট্যাক্স:

(use 'clojure.test)

(defn setup []
  (println "Test setup"))
  
(defn teardown []
  (println "Test cleanup"))

(use-fixtures :each setup)  ; `:each` মানে, প্রতিটি টেস্টের আগে ফিক্সচার চলবে

এখানে use-fixtures ফাংশনটি ব্যবহার করা হয়েছে, যাতে setup ফাংশনটি প্রতিটি টেস্টের আগে রান হবে।

উদাহরণ:

(ns my-test
  (:use [clojure.test]))

(defn setup []
  (println "Setting up the test environment"))

(defn teardown []
  (println "Cleaning up the test environment"))

(use-fixtures :once setup)  ; একবার ফিক্সচার ব্যবহার হবে, সমস্ত টেস্টের আগে

(deftest test-something
  (testing "Basic Test"
    (is (= 1 1))))

এখানে setup ফিক্সচারটি শুধুমাত্র একবার টেস্ট রান করার আগে চালানো হবে, এবং teardown ফিক্সচারটি শেষে ক্লিনআপ হিসেবে ব্যবহার করা যেতে পারে।


২. Assertion Functions

Assertion Functions হল সেগুলো ফাংশন যা আপনার কোডের সঠিকতা পরীক্ষা করার জন্য ব্যবহৃত হয়। clojure.test লাইব্রেরিতে বেশ কিছু বিল্ট-ইন অ্যাসারশন ফাংশন রয়েছে, যেগুলোর মাধ্যমে আপনি আপনার টেস্টগুলোর ফলাফল যাচাই করতে পারেন।

কিছু জনপ্রিয় অ্যাসারশন ফাংশন:

  1. is: এটি একটি সাধারণ অ্যাসারশন ফাংশন যা একটি শর্ত যাচাই করে। যদি শর্তটি সঠিক হয়, তবে টেস্টটি পাস করবে, অন্যথায় ব্যর্থ হবে।

    (is (= 3 (+ 1 2)))  ; এটা সঠিক, টেস্ট পাস হবে
  2. are: এটি একাধিক ইনপুটের জন্য একই অ্যাসারশন চেক করতে ব্যবহৃত হয়।

    (are [x y] (= x y)
      1 1
      2 2
      3 3)  ; সব টেস্ট পাস হবে
  3. testing: এটি টেস্টের নাম বা বর্ণনা উল্লেখ করতে ব্যবহৃত হয়, যাতে আপনি কী টেস্ট করছেন তা বুঝতে পারেন।

    (testing "Addition works"
      (is (= 4 (+ 2 2))))
  4. throwable?: এটি চেক করে যে কোডটি একটি ত্রুটি ছুড়ে ফেলবে কি না।

    (is (thrown? ArithmeticException (/ 1 0)))  ; এটি একটি ArithmeticException ছুড়ে ফেলবে
  5. =, not=, ==, identical?: এগুলি মূল অ্যাসারশন অপারেটর যা মানের তুলনা করে।

    (is (= 5 (+ 2 3)))  ; পরীক্ষার শর্ত সঠিক, টেস্ট পাস হবে
    (is (not= 2 (+ 2 3)))  ; পরীক্ষার শর্ত ভুল, টেস্ট ব্যর্থ হবে

৩. কিছু উদাহরণ: Test Fixtures এবং Assertions একসাথে ব্যবহার করা

(ns my-test
  (:use [clojure.test]))

(defn setup []
  (println "Setting up resources"))

(defn teardown []
  (println "Cleaning up resources"))

(use-fixtures :once setup)  ; একবার ফিক্সচার ব্যবহার হবে

(deftest test-arithmetic
  (testing "Testing arithmetic functions"
    (is (= 4 (+ 2 2)))  ; প্রথম অ্যাসারশন
    (is (= 6 (+ 3 3)))) ; দ্বিতীয় অ্যাসারশন

(deftest test-string
  (testing "Testing string functions"
    (is (clojure.string/includes? "hello world" "hello"))
    (is (not (clojure.string/includes? "hello world" "goodbye")))))

(deftest test-exception
  (testing "Testing for exception"
    (is (thrown? ArithmeticException (/ 1 0)))))

৪. সারসংক্ষেপ

  • Test Fixtures: ফিক্সচারগুলি টেস্টের আগে বা পরে সেটআপ বা ক্লিনআপ করার জন্য ব্যবহৃত হয়। Clojure-এ use-fixtures দিয়ে এটি করা হয়।
    • :once বা :each ব্যবহার করে নির্দিষ্ট করতে পারেন কখন ফিক্সচার চলবে (একবার বা প্রতিটি টেস্টের আগে)।
  • Assertion Functions: is, are, thrown?, এবং অন্যান্য অ্যাসারশন ফাংশনগুলি কোডের সঠিকতা যাচাই করতে ব্যবহৃত হয়।
    • অ্যাসারশন ফাংশনগুলি টেস্টের মধ্যে শর্ত যাচাই করে এবং সেই শর্তটি সত্য কিনা তা পরীক্ষা করে।

Clojure-এ টেস্টিং এবং এক্সেপ্টশন হ্যান্ডলিং খুবই গুরুত্বপূর্ণ এবং এটি নিশ্চিত করে যে আপনার কোড প্রত্যাশিতভাবে কাজ করছে এবং রক্ষণাবেক্ষণযোগ্য। clojure.test লাইব্রেরি ব্যবহার করে আপনি সিম্পল থেকে অ্যাডভান্সড টেস্টিং স্কেনারিও সমাধান করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion