Riot.js এর জন্য Unit Testing এবং Integration Testing সঠিকভাবে করার জন্য কিছু টেস্টিং টুল এবং ফ্রেমওয়ার্ক ব্যবহার করা প্রয়োজন। এই টেস্টিংগুলো অ্যাপ্লিকেশনের কোডের আচার-ব্যবহার নিশ্চিত করতে সাহায্য করে এবং বাগ বা ভুল সনাক্ত করতে সাহায্য করে। Riot.js-এ টেস্টিং সাধারণত Jest, Mocha, Chai, এবং Karma ব্যবহার করা হয়।
এখানে Riot.js এর জন্য Unit Testing এবং Integration Testing করার কিছু পদ্ধতি দেখানো হবে।
১. Unit Testing: একটি কম্পোনেন্টের লজিক পরীক্ষা করা
Unit Testing হল ছোট ছোট টুকরো (ইউনিট) কোড পরীক্ষা করা, যেমন একটি ফাংশন বা কম্পোনেন্টের লজিক। Riot.js-এ ইউনিট টেস্ট করার জন্য Jest খুবই জনপ্রিয় একটি টুল, কারণ এটি খুব সহজে সেটআপ করা যায় এবং একত্রিতভাবে কাজ করে।
Step 1: Jest ইনস্টল করা
প্রথমে আপনাকে Jest ইনস্টল করতে হবে:
npm install --save-dev jest
Step 2: Riot কম্পোনেন্ট টেস্ট করা
এখানে একটি কম্পোনেন্টের জন্য ইউনিট টেস্ট দেখানো হচ্ছে। ধরে নেওয়া হচ্ছে, আপনার একটি কম্পোনেন্ট রয়েছে যা একটি message স্টেট সেট করে।
<!-- MyComponent.riot -->
<my-component>
<h1>{message}</h1>
<script>
export default {
onMounted() {
this.message = 'Hello, World!';
}
}
</script>
</my-component>
এখন, এই কম্পোনেন্টটির জন্য একটি ইউনিট টেস্ট তৈরি করা হবে।
Step 3: টেস্ট কোড লেখা
// MyComponent.test.js
import riot from 'riot';
import MyComponent from './MyComponent.riot'; // কম্পোনেন্টের রুট ফাইল
describe('MyComponent', () => {
it('should render the default message', () => {
const element = riot.mount('my-component')[0]; // কম্পোনেন্ট মাউন্ট করা
expect(element.message).toBe('Hello, World!'); // message স্টেট চেক করা
});
});
ব্যাখ্যা:
riot.mount(): এটি Riot.js কম্পোনেন্ট মাউন্ট করে এবং আপনার টেস্টিং পরিবেশে এটি ইনস্ট্যান্স তৈরি করে।expect(): এটিmessageস্টেটের মান চেক করছে।- Jest:
jestব্যবহার করে টেস্ট রান করা হয় এবংtoBe()মেথড দিয়ে আউটপুট যাচাই করা হয়।
Step 4: Jest রান করা
Jest রান করতে package.json ফাইলে স্ক্রিপ্ট যুক্ত করুন:
"scripts": {
"test": "jest"
}
এখন, কমান্ড লাইন থেকে টেস্ট চালাতে পারবেন:
npm test
২. Integration Testing: বিভিন্ন কম্পোনেন্টের ইন্টিগ্রেশন পরীক্ষা করা
Integration Testing হল একাধিক কম্পোনেন্ট বা ইউনিটের একসাথে কাজ করার পদ্ধতি পরীক্ষা করা। Riot.js-এ এই ধরনের টেস্ট করতে আপনি @riotjs/testing-library অথবা jest এর সাথে react-testing-library ব্যবহার করতে পারেন।
Step 1: @riotjs/testing-library ইনস্টল করা
npm install --save-dev @riotjs/testing-library
Step 2: ইন্টিগ্রেশন টেস্ট তৈরি করা
ধরা যাক, আপনার দুটি কম্পোনেন্ট রয়েছে: একটি ParentComponent এবং একটি ChildComponent, এবং আপনি চান যে ParentComponent এর মধ্যে ChildComponent কে রেন্ডার করা হোক।
ChildComponent.riot:
<!-- ChildComponent.riot -->
<child-component>
<p>{opts.message}</p>
</child-component>
ParentComponent.riot:
<!-- ParentComponent.riot -->
<parent-component>
<child-component message={childMessage}></child-component>
<script>
export default {
onMounted() {
this.childMessage = 'Hello from Parent!';
}
}
</script>
</parent-component>
এখন, আপনি ইন্টিগ্রেশন টেস্ট লিখবেন, যাতে চেক করা হয় ParentComponent সঠিকভাবে ChildComponent কে রেন্ডার করছে।
Step 3: টেস্ট কোড লেখা
// ParentComponent.test.js
import { render } from '@riotjs/testing-library';
import ParentComponent from './ParentComponent.riot';
describe('ParentComponent', () => {
it('should render ChildComponent with message', async () => {
const { findByText } = render(ParentComponent); // কম্পোনেন্ট রেন্ডার করা
const childMessage = await findByText('Hello from Parent!');
expect(childMessage).toBeInTheDocument(); // ChildComponent এর বার্তা চেক করা
});
});
ব্যাখ্যা:
render(): এটি Riot.js কম্পোনেন্ট রেন্ডার করে এবং ইউজার ইন্টারফেসে এর উপস্থিতি পরীক্ষা করতে সাহায্য করে।findByText(): এটি পরীক্ষার জন্যChildComponentএর প্রদত্তmessageএর টেক্সট খুঁজে বের করে এবং নিশ্চিত করে যে এটি সঠিকভাবে রেন্ডার হয়েছে।expect(): এটি যাচাই করে যেChildComponentএর টেক্সট ডকুমেন্টে রয়েছে।
Step 4: টেস্ট রান করা
এখন, আপনি আবার Jest ব্যবহার করে টেস্ট রান করতে পারেন:
npm test
৩. Test Coverage: টেস্ট কভারেজ যাচাই করা
আপনি আপনার কোডের কভারেজ দেখতে চাইলে Jest এর মাধ্যমে কভারেজ জেনারেট করতে পারেন।
npm test -- --coverage
এটি আপনার টেস্ট কভারেজ দেখাবে এবং যেসব অংশ টেস্ট হয়নি সেগুলো শনাক্ত করবে।
Unit Testing এবং Integration Testing Riot.js অ্যাপ্লিকেশনের কোডের আচার-ব্যবহার যাচাই করতে অপরিহার্য। আপনি Jest এবং @riotjs/testing-library ব্যবহার করে সহজে টেস্টিং করতে পারেন। Unit Testing কম্পোনেন্টের লজিক পরীক্ষা করে এবং Integration Testing বিভিন্ন কম্পোনেন্টের মধ্যে ইন্টিগ্রেশন যাচাই করে, যা আপনার অ্যাপ্লিকেশনকে আরো বিশ্বাসযোগ্য এবং রক্ষনাবেক্ষণযোগ্য করে তোলে।
Read more