Elm একটি ফাংশনাল প্রোগ্রামিং ভাষা, যা ইউজার ইন্টারফেস তৈরি করতে ব্যবহৃত হয়। যখন আপনি Elm অ্যাপ্লিকেশন তৈরি করেন, তখন আপনার কোডের টেস্টিং নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ। Elm এর জন্য একটি বিল্ট-ইন টেস্টিং ফ্রেমওয়ার্ক রয়েছে, যা কোডের বিভিন্ন অংশ পরীক্ষা করার জন্য ব্যবহৃত হয়। Elm এর elm-test মডিউল এই ফ্রেমওয়ার্কের মূল অংশ হিসেবে কাজ করে।
এখানে Elm এর টেস্টিং ফ্রেমওয়ার্কের ধারণা, এর ব্যবহারের পদ্ধতি এবং উদাহরণ আলোচনা করা হলো।
১. Elm-Test Overview
elm-test হল Elm এর জন্য একটি অফিসিয়াল টেস্টিং ফ্রেমওয়ার্ক, যা ইউনিট টেস্ট, ফাংশনাল টেস্ট এবং অ্যাসার্টস প্রদান করে। এই ফ্রেমওয়ার্কটি Elm 0.19 এর জন্য তৈরি করা হয়েছে এবং এটি সাধারণত Elm Test এর সাহায্যে কোডের অংশবিশেষ পরীক্ষা করার জন্য ব্যবহৃত হয়।
elm-test এর সাহায্যে আপনি:
- আপনার Elm কোড এর টেস্টিং করতে পারবেন।
- Assertions (যেমন:
Equal,True,Falseইত্যাদি) ব্যবহার করে যাচাই করতে পারবেন। - Test Suites এবং Test Cases তৈরি করতে পারবেন।
২. elm-test ইনস্টলেশন
elm-test ব্যবহার করতে হলে, প্রথমে elm-test প্যাকেজটি ইনস্টল করতে হবে। ইনস্টল করার জন্য, নিচের কমান্ডটি ব্যবহার করুন:
elm install elm/exposeএটি elm-test টেস্টিং ফ্রেমওয়ার্কের প্যাকেজ ইনস্টল করবে।
৩. এলেম টেস্ট কেস তৈরি করা
Elm Test একটি Testing module তৈরি করে যা আপনার কোডের বিভিন্ন অংশ পরীক্ষা করতে ব্যবহৃত হয়। টেস্ট কেস এবং টেস্ট সুইট তৈরি করার জন্য Test মডিউল ব্যবহার করা হয়।
একটি সাধারণ টেস্ট কেস উদাহরণ:
module Test exposing (..)
import Test exposing (..)
import Expect exposing (..)
-- সিম্পল ফাংশন
add : Int -> Int -> Int
add x y = x + y
-- টেস্ট কেস
testAdd : Test
testAdd =
test "Test adding two numbers" <|
\_ -> Expect.equal (add 2 3) 5এখানে, add একটি ফাংশন যা দুইটি পূর্ণসংখ্যা নেয় এবং তাদের যোগফল প্রদান করে। তারপর আমরা Expect.equal ফাংশন ব্যবহার করে টেস্ট করেছি যে add 2 3 এর মান সত্যিই 5 কিনা।
টেস্ট কেস চালানো:
elm-testএটি টেস্ট কেস চালাবে এবং ফলাফল কমান্ড লাইনে প্রদর্শন করবে।
৪. বেশ কিছু টেস্ট কেস একত্রে করা
একাধিক টেস্ট কেস এবং টেস্ট সুইট একত্রে যুক্ত করা যায়, যাতে আপনি অনেক ফাংশন বা কোডের অংশ পরীক্ষা করতে পারেন।
টেস্ট সুইট তৈরি করা:
module Main exposing (..)
import Test exposing (..)
import Expect exposing (..)
-- সিম্পল ফাংশন
add : Int -> Int -> Int
add x y = x + y
subtract : Int -> Int -> Int
subtract x y = x - y
-- টেস্ট কেস
testAdd : Test
testAdd =
test "Test adding two numbers" <|
\_ -> Expect.equal (add 2 3) 5
testSubtract : Test
testSubtract =
test "Test subtracting two numbers" <|
\_ -> Expect.equal (subtract 5 3) 2
-- টেস্ট সুইট
tests : Test
tests =
describe "Arithmetic tests" [
testAdd,
testSubtract
]এখানে, testAdd এবং testSubtract দুটি আলাদা টেস্ট কেস তৈরি করা হয়েছে। তারপর, এগুলিকে describe ফাংশনের মাধ্যমে একটি টেস্ট সুইটে একত্রে যুক্ত করা হয়েছে। এর মাধ্যমে আমরা একই সময়ে একাধিক টেস্ট কেস চালাতে পারব।
টেস্ট চালানো:
elm-testএটি সমস্ত টেস্ট কেস চালাবে এবং ফলাফল দেখাবে।
৫. অ্যাসার্ট ফাংশন ব্যবহার করা
Elm Test এ অ্যাসার্ট ফাংশন ব্যবহৃত হয়, যা টেস্টের ফলাফল যাচাই করতে সহায়তা করে। কিছু জনপ্রিয় Expect ফাংশনগুলোর মধ্যে রয়েছে:
Expect.equal: দুটি মানের সমতা যাচাই করে।Expect.notEqual: দুটি মানের অসমতা যাচাই করে।Expect.true: মানটি সত্য কিনা যাচাই করে।Expect.false: মানটি মিথ্যা কিনা যাচাই করে।Expect.list: একটি লিস্টের উপাদানগুলির সঠিকতা যাচাই করে।
উদাহরণ:
testEqual : Test
testEqual =
test "Test equal numbers" <|
\_ -> Expect.equal 5 5
testNotEqual : Test
testNotEqual =
test "Test not equal numbers" <|
\_ -> Expect.notEqual 5 6এখানে, Expect.equal এবং Expect.notEqual ব্যবহার করা হয়েছে দুটি মানের সমতা এবং অসমতা যাচাই করার জন্য।
৬. এলেম টেস্টের কিছু অন্যান্য ফিচার
Test.describe: একাধিক টেস্ট কেসের একটি ব্যাখ্যা তৈরি করতে ব্যবহৃত হয়।Test.context: টেস্ট কেসের জন্য কিছু কনটেক্সট বা পরিবেশ তৈরি করতে ব্যবহৃত হয়।Test.batch: একাধিক টেস্ট কেস একত্রে ব্যাচ আকারে চালানো যায়।
উদাহরণ:
testContext : Test
testContext =
context "Test for addition functions" <|
\_ -> Expect.equal (add 3 4) 7এখানে, Test.context ব্যবহার করে টেস্টের জন্য একটি কনটেক্সট তৈরি করা হয়েছে, যা টেস্ট চলাকালীন সহায়ক তথ্য প্রদান করে।
উপসংহার
Elm এর জন্য elm-test একটি শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক যা কোডের সঠিকতা নিশ্চিত করার জন্য ব্যবহৃত হয়। Expect ফাংশন ব্যবহার করে টেস্ট কেস এবং Test.describe দিয়ে টেস্ট সুইট তৈরি করা যায়। Elm এর টেস্টিং ফ্রেমওয়ার্কটি ফাংশনাল প্রোগ্রামিংয়ের আদর্শ অনুসরণ করে, যেখানে প্রতিটি ফাংশনের ইনপুট এবং আউটপুট সঠিকভাবে পরীক্ষা করা হয়। এটি একটি সুশৃঙ্খল এবং নির্ভরযোগ্য টেস্টিং পরিবেশ তৈরি করতে সাহায্য করে।
Read more