$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?> ইজেক্টেড এক্সপো

ইজেক্টেড এক্সপো প্রোজেক্টে "নেটিভমডিউল: অ্যাসিঙ্কস্টোরেজ নাল" ত্রুটি ঠিক করা হচ্ছে

ইজেক্টেড এক্সপো প্রোজেক্টে নেটিভমডিউল: অ্যাসিঙ্কস্টোরেজ নাল ত্রুটি ঠিক করা হচ্ছে
ইজেক্টেড এক্সপো প্রোজেক্টে নেটিভমডিউল: অ্যাসিঙ্কস্টোরেজ নাল ত্রুটি ঠিক করা হচ্ছে

প্রতিক্রিয়া নেটিভ-এ AsyncStorage সমস্যা বোঝা এবং সমাধান করা

এটিকে চিত্রিত করুন: আপনি এক্সপো থেকে আপনার প্রতিক্রিয়া নেটিভ প্রকল্পটি বের করেছেন, আপনার অ্যাপটিকে পরবর্তী স্তরে নিয়ে যাওয়ার জন্য প্রস্তুত৷ 🚀 কিন্তু আপনি iOS সিমুলেটরে অ্যাপটি চালানোর সাথে সাথে আপনাকে একটি হতাশাজনক ত্রুটির সাথে স্বাগত জানানো হবে—"নেটিভ মডিউল: AsyncStorage শূন্য।" অনেক ডেভেলপারের জন্য, এটি একটি দেয়ালে আঘাত করার মতো মনে হতে পারে।

এক্সপো থেকে বেয়ার রিঅ্যাক্ট নেটিভ ওয়ার্কফ্লোতে রূপান্তর করার সময় এই সমস্যাটি বিশেষভাবে সাধারণ। পরিবর্তনটি নতুন নির্ভরতা, নেটিভ কনফিগারেশন এবং অনুপস্থিত লিঙ্কগুলির সম্ভাবনা প্রবর্তন করে, যা রানটাইম ত্রুটির দিকে পরিচালিত করে। এটা বিশেষ করে ডেভেলপারদের জন্য কঠিন যারা ইকোসিস্টেমে নতুন বা নেটিভ মডিউলের সাথে অপরিচিত।

আমাকে একটি অনুরূপ অভিজ্ঞতা শেয়ার করতে দিন: আমার ইজেকশন প্রক্রিয়াগুলির একটির সময়, CocoaPods সেটআপে একটি অনুপস্থিত পদক্ষেপ আমার প্রকল্পটি অপ্রত্যাশিতভাবে ভেঙে দিয়েছে। সমস্যাটি সঠিকভাবে সংযুক্ত নয় এমন একটি নির্ভরতার সাথে আবদ্ধ ছিল তা বুঝতে কয়েক ঘন্টা ডিবাগিংয়ের সময় লেগেছে। সমাধানটি স্বজ্ঞাত ছিল না, তবে একবার আমি এটিকে একত্রিত করেছিলাম, এটি অর্থপূর্ণ ছিল। 😊

এই নির্দেশিকায়, আমরা এই ত্রুটির রহস্য উন্মোচন করব এবং এটি সমাধানের জন্য ধাপে ধাপে আপনাকে গাইড করব। এটি আপনার CocoaPods সেটআপ ঠিক করা, ক্যাশে পরিষ্কার করা বা নির্ভরতা সঠিকভাবে ইনস্টল করা নিশ্চিত করার বিষয়েই হোক না কেন, আপনি আপনার অ্যাপটিকে ট্র্যাকে ফিরিয়ে আনার জন্য এখানে ব্যবহারিক সমাধান পাবেন৷ এর মধ্যে ডুব দেওয়া যাক!

আদেশ ব্যবহারের উদাহরণ
npm start -- --reset-cache মেট্রো বান্ডলার ক্যাশে সাফ করে তা নিশ্চিত করে যে পুরানো বা দূষিত ক্যাশে ফাইলগুলি অ্যাপ ডেভেলপমেন্টের সময় সমস্যা সৃষ্টি করে না। নেটিভ মডিউল লিঙ্কিং সমস্যাগুলির সাথে মোকাবিলা করার সময় এটি বিশেষভাবে কার্যকর।
npx react-native link @react-native-async-storage/async-storage আপনার প্রতিক্রিয়া নেটিভ প্রকল্পের সাথে AsyncStorage নেটিভ মডিউল লিঙ্ক করে। এই ধাপটি নিশ্চিত করে যে প্যাকেজের জন্য প্রয়োজনীয় নেটিভ কোডটি আপনার প্রোজেক্টের সাথে সঠিকভাবে সংযুক্ত আছে, বিশেষ করে পুরানো রিঅ্যাক্ট নেটিভ সংস্করণের জন্য।
pod install আপনার প্রকল্পের Podfile তালিকাভুক্ত iOS নির্ভরতা ইনস্টল করে। এটি iOS প্ল্যাটফর্মগুলিতে AsyncStorage এর মতো নেটিভ মডিউলগুলিকে একীভূত করার জন্য প্রয়োজনীয়৷
await AsyncStorage.setItem(key, value) AsyncStorage-এ একটি কী-এর সাথে যুক্ত একটি মান সঞ্চয় করে। আপনার অ্যাপ্লিকেশনে AsyncStorage সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
await AsyncStorage.getItem(key) AsyncStorage থেকে একটি নির্দিষ্ট কী-এর সাথে যুক্ত মান পুনরুদ্ধার করে। ডেটা স্টোরেজ এবং পুনরুদ্ধার প্রত্যাশিতভাবে কাজ করছে কিনা তা যাচাই করতে এটি সাধারণত ব্যবহৃত হয়।
jest জাভাস্ক্রিপ্টে ইউনিট পরীক্ষা লিখতে এবং চালানোর জন্য ব্যবহৃত একটি টেস্টিং ফ্রেমওয়ার্ক। এই প্রসঙ্গে, এটি প্রতিক্রিয়া নেটিভ অ্যাপের মধ্যে AsyncStorage অপারেশনগুলির সঠিক আচরণকে যাচাই করে।
describe() একটি জেস্ট ফাংশন গ্রুপ সম্পর্কিত পরীক্ষার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, এটি আরও ভাল সংগঠনের জন্য AsyncStorage ইন্টিগ্রেশন সম্পর্কিত সমস্ত পরীক্ষাকে গোষ্ঠীভুক্ত করে।
expect(value).toBe(expectedValue) দাবি করে যে একটি মান পরীক্ষার সময় প্রত্যাশিত মানের সাথে মেলে। AsyncStorage অপারেশনের সঠিকতা যাচাই করতে ব্যবহৃত হয়।
fireEvent @testing-library/react-native থেকে একটি ফাংশন যা UI উপাদানগুলির সাথে ব্যবহারকারীর মিথস্ক্রিয়াকে অনুকরণ করে। এটি পরোক্ষভাবে AsyncStorage ব্যবহার পরীক্ষা করে এমন ইভেন্ট ট্রিগার করার জন্য দরকারী।
implementation project(':@react-native-async-storage/async-storage') প্রকল্পে নির্ভরতা হিসাবে AsyncStorage অন্তর্ভুক্ত করার জন্য Android বিল্ড কনফিগারেশনে একটি Gradle কমান্ড যোগ করা হয়েছে। পুরানো প্রতিক্রিয়া নেটিভ সংস্করণে ম্যানুয়াল লিঙ্ক করার জন্য এটি প্রয়োজন।

রিঅ্যাক্ট নেটিভে AsyncStorage সমস্যা বোঝা এবং সমস্যা সমাধান করা

প্রথম স্ক্রিপ্টটি প্রয়োজনীয় নির্ভরতা ইনস্টল করে শুরু হয়, @react-native-async-storage/async-storage, npm ব্যবহার করে। এটি একটি গুরুত্বপূর্ণ পদক্ষেপ কারণ React Native-এ AsyncStorage কে আর একটি মূল মডিউল হিসেবে অন্তর্ভুক্ত করে না। স্পষ্টভাবে এটি ইনস্টল না করে, অ্যাপটি প্রয়োজনীয় নেটিভ মডিউল খুঁজে পেতে ব্যর্থ হবে, যার ফলে "NativeModule: AsyncStorage is null" ত্রুটি দেখা দেবে৷ উপরন্তু, চলমান পড ইনস্টল নিশ্চিত করে যে iOS নির্ভরতা সঠিকভাবে কনফিগার করা হয়েছে। এই পদক্ষেপটি এড়িয়ে যাওয়ার ফলে প্রায়শই বিল্ড ত্রুটি দেখা দেয়, বিশেষ করে যখন প্রতিক্রিয়া নেটিভ প্রকল্পগুলিতে নেটিভ লাইব্রেরিগুলির সাথে কাজ করা হয়।

এরপরে, স্ক্রিপ্টটি মেট্রো বান্ডলার ব্যবহার করে --রিসেট-ক্যাশে পতাকা এই কমান্ডটি ক্যাশে করা ফাইলগুলিকে সাফ করে যা অসঙ্গতির কারণ হতে পারে, বিশেষ করে নতুন মডিউল ইনস্টল করার পরে বা নেটিভ সেটআপে পরিবর্তন করার পরে। ক্যাশে সাফ করা নিশ্চিত করে যে বান্ডলারটি পুরানো ফাইলগুলি পরিবেশন করে না। উদাহরণস্বরূপ, যখন আমি একটি ভুল কনফিগার করা নির্ভরতার সাথে একটি অনুরূপ সমস্যার সম্মুখীন হয়েছিলাম, তখন এই পদক্ষেপটি এটিকে দ্রুত সমাধান করতে সাহায্য করেছিল এবং আমাকে কয়েক ঘণ্টার হতাশা থেকে বাঁচিয়েছিল। 😅 দ প্রতিক্রিয়া-নেটিভ লিঙ্ক কমান্ড হল আরেকটি মূল দিক—এটি লাইব্রেরির সাথে ম্যানুয়ালি লিঙ্ক করে, যদিও রিঅ্যাক্ট নেটিভের আধুনিক সংস্করণ প্রায়ই এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে।

জেস্ট পরীক্ষার স্ক্রিপ্ট যাচাই করে যে AsyncStorage প্রত্যাশিতভাবে কাজ করছে। ইউনিট পরীক্ষা লিখে, বিকাশকারীরা পরীক্ষা করতে পারে যে ডেটা সঠিকভাবে সংরক্ষণ করা হচ্ছে এবং পুনরুদ্ধার করা হচ্ছে। উদাহরণস্বরূপ, আমি একটি প্রকল্পে কাজ করেছি, এই পরীক্ষাগুলি একটি কনফিগারেশন ত্রুটি সনাক্ত করেছে যা নীরবে অ্যাপে ব্যর্থ হয়েছে। চলছে AsyncStorage.setItem এবং এর মাধ্যমে এর পুনরুদ্ধার যাচাই করা getItem নিশ্চিত করে যে লাইব্রেরিটি সঠিকভাবে সংযুক্ত এবং কাজ করছে। এই পদ্ধতিটি আস্থা প্রদান করে যে অ্যাপের ডেটা স্থায়ীত্ব স্তরটি স্থিতিশীল।

অবশেষে, পুরানো প্রতিক্রিয়া নেটিভ সংস্করণের বিকল্প সমাধান ম্যানুয়াল লিঙ্কিং প্রদর্শন করে। এর মধ্যে গ্রেডল ফাইলগুলি সংশোধন করা এবং অ্যান্ড্রয়েডের প্যাকেজ আমদানি যুক্ত করা জড়িত MainApplication.java. যদিও এই পদ্ধতিটি পুরানো, এটি এখনও লিগ্যাসি প্রকল্পগুলির জন্য দরকারী৷ একজন ক্লায়েন্ট একবার ঠিক করার জন্য আমাকে একটি পুরানো অ্যাপ দিয়েছিলেন এবং নেটিভ মডিউলগুলি চালানোর জন্য এই ম্যানুয়াল পদক্ষেপগুলি প্রয়োজনীয় ছিল। এই স্ক্রিপ্টগুলি বিভিন্ন প্রজেক্ট সেটআপ জুড়ে সামঞ্জস্যতা নিশ্চিত করে রিঅ্যাক্ট নেটিভ-এর কনফিগারেশনের বহুমুখীতা প্রদর্শন করে। 🚀 এই পদক্ষেপগুলির মাধ্যমে, বিকাশকারীরা AsyncStorage সমস্যাগুলি সমাধান করতে পারে এবং তাদের অ্যাপ বিকাশের সাথে নির্বিঘ্নে এগিয়ে যেতে পারে৷

প্রতিক্রিয়া নেটিভ প্রকল্পগুলিতে AsyncStorage নাল ত্রুটি সমাধান করা হচ্ছে

একটি Node.js এবং রিঅ্যাক্ট নেটিভ অ্যাপ্রোচ লিভারেজিং প্যাকেজ ম্যানেজমেন্ট এবং কোকোপডস ইন্টিগ্রেশন

// Step 1: Install the AsyncStorage package
npm install @react-native-async-storage/async-storage

// Step 2: Install CocoaPods dependencies
cd ios
pod install
cd ..

// Step 3: Clear Metro bundler cache
npm start -- --reset-cache

// Step 4: Ensure React Native CLI links the module
npx react-native link @react-native-async-storage/async-storage

// Step 5: Rebuild the project
npx react-native run-ios

ইউনিট টেস্টের সাথে ইন্টিগ্রেশন পরীক্ষা করা

রিঅ্যাক্ট নেটিভ-এ AsyncStorage ইন্টিগ্রেশন যাচাই করতে জেস্ট ব্যবহার করা

// Install Jest and testing utilities
npm install jest @testing-library/react-native

// Create a test file for AsyncStorage
// __tests__/AsyncStorage.test.js

import AsyncStorage from '@react-native-async-storage/async-storage';
import { render, fireEvent } from '@testing-library/react-native';

describe('AsyncStorage Integration', () => {
  it('should store and retrieve data successfully', async () => {
    await AsyncStorage.setItem('key', 'value');
    const value = await AsyncStorage.getItem('key');
    expect(value).toBe('value');
  });
});

বিকল্প সমাধান: লিগ্যাসি রিঅ্যাক্ট নেটিভ সংস্করণের জন্য ম্যানুয়াল লিঙ্কিং

0.60 সংস্করণের নিচের রিঅ্যাক্ট নেটিভ প্রোজেক্টের জন্য ম্যানুয়াল কনফিগারেশন প্রয়োজন

// Step 1: Add AsyncStorage dependency
npm install @react-native-async-storage/async-storage

// Step 2: Modify android/settings.gradle
include ':@react-native-async-storage/async-storage'
project(':@react-native-async-storage/async-storage').projectDir =
    new File(rootProject.projectDir, '../node_modules/@react-native-async-storage/async-storage/android')

// Step 3: Update android/app/build.gradle
implementation project(':@react-native-async-storage/async-storage')

// Step 4: Update MainApplication.java
import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
...
new AsyncStoragePackage()

ইজেক্টেড এক্সপো প্রকল্পগুলিতে সাধারণ নেটিভমডিউল ত্রুটিগুলি সমাধান করা

এক্সপো-পরিচালিত ওয়ার্কফ্লো থেকে একটি বেয়ার রিঅ্যাক্ট নেটিভ প্রকল্পে রূপান্তর করার সময়, একটি বড় চ্যালেঞ্জ হল নেটিভ নির্ভরতা পরিচালনা করা। দ অ্যাসিঙ্ক স্টোরেজ ত্রুটি ঘটে কারণ এক্সপো আগে আপনার জন্য এটি পরিচালনা করেছিল। বের করার পরে, AsyncStorage-এর মতো নির্ভরতাগুলি সঠিকভাবে ইনস্টল করা এবং লিঙ্ক করা নিশ্চিত করা অপরিহার্য। এখানেই iOS-এ CocoaPods এবং মেট্রো বান্ডলার ক্যাশিং কমান্ডের মতো সরঞ্জামগুলি কাজে আসে, কারণ তারা সাধারণ কনফিগারেশন সমস্যাগুলি প্রতিরোধ করে।

এই সমস্যাটি সমাধানের একটি উপেক্ষিত দিক হল প্রকল্পের কাঠামো বোঝা। ইজেক্ট করার পর, ফাইলের মত পডফাইল এবং package.json সঠিক নেটিভ নির্ভরতা লোড করা হয়েছে তা নিশ্চিত করার জন্য গুরুত্বপূর্ণ হয়ে উঠুন। একটি সাধারণ পরিস্থিতিতে অনুপস্থিত বা পুরানো নির্ভরতা জড়িত package.json, যা CLI-কে মডিউল অটোলিংক করা থেকে বাধা দেয়। যেমন কমান্ড দিয়ে প্রকল্প আপডেট রাখা npm install এবং pod install রানটাইম ত্রুটি এড়াতে চাবিকাঠি.

ডিবাগিং পরিবেশও একটি ভূমিকা পালন করে। যদিও অ্যান্ড্রয়েডে পরীক্ষা করা কখনও কখনও iOS-নির্দিষ্ট সমস্যাগুলিকে বাইপাস করতে পারে, এটি সর্বদা iOS-শুধু বিকাশকারীদের জন্য একটি বিকল্প নয়। তবে উভয় প্ল্যাটফর্মে পরীক্ষা করা নিশ্চিত করে যে আপনার অ্যাপটি শক্তিশালী। উদাহরণস্বরূপ, একজন বিকাশকারী একবার দেখেছেন যে অ্যান্ড্রয়েড তাদের সেটআপে একটি টাইপো প্রকাশ করেছে যা iOS-এ অলক্ষিত ছিল। 🛠️ সমাধানটি যখনই সম্ভব সিমুলেটর বা বাস্তব ডিভাইস উভয়ের পদ্ধতিগতভাবে পরীক্ষা করা এবং কনফিগারেশন যাচাই করা।

AsyncStorage ত্রুটি সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

  1. কেন AsyncStorage বের করার পরে নাল হিসাবে দেখায়?
  2. এটি ঘটে কারণ নির্বাসনের পরে এক্সপো প্রকল্পগুলিতে নির্ভরতা আর অন্তর্ভুক্ত করা হয় না। আপনাকে এটি ব্যবহার করে ম্যানুয়ালি ইনস্টল করতে হবে npm install @react-native-async-storage/async-storage.
  3. এটি ঠিক করার জন্য আমাকে কি এক্সপো পুনরায় ইনস্টল করতে হবে?
  4. না, এক্সপো পুনরায় ইনস্টল করা অপ্রয়োজনীয়। কেবলমাত্র নেটিভ মডিউলগুলি লিঙ্ক এবং ইনস্টল করার জন্য সঠিক পদক্ষেপগুলি অনুসরণ করুন৷
  5. আমি কিভাবে নিশ্চিত করব যে AsyncStorage সঠিকভাবে লিঙ্ক করা আছে?
  6. কমান্ড ব্যবহার করুন npx react-native link @react-native-async-storage/async-storage এটি পুরানো প্রতিক্রিয়া নেটিভ সংস্করণে লিঙ্ক করা হয়েছে তা নিশ্চিত করতে।
  7. এই সমস্যাটি সমাধানে কোকোপডসের ভূমিকা কী?
  8. CocoaPods নেটিভ iOS নির্ভরতা পরিচালনা করতে সাহায্য করে। চলছে pod install নিশ্চিত করে যে AsyncStorage নেটিভ মডিউলটি iOS-এ সঠিকভাবে ইনস্টল করা আছে।
  9. আমি কিভাবে "অবিবর্তনীয় লঙ্ঘন" ত্রুটি ঠিক করতে পারি?
  10. অ্যাপটি সঠিকভাবে নিবন্ধিত না হলে এই ত্রুটি ঘটে। আপনার অ্যাপ এন্ট্রি ফাইল চেক করুন এবং নিশ্চিত করুন যে অ্যাপটি ব্যবহার করে নিবন্ধিত হয়েছে AppRegistry.registerComponent.
  11. মেট্রো ক্যাশে সাফ করা কি এই সমস্যার সাথে সাহায্য করে?
  12. হ্যাঁ, চলছে npm start -- --reset-cache ক্যাশে করা ফাইলগুলি সাফ করে যা বিল্ড করার সময় দ্বন্দ্ব সৃষ্টি করতে পারে।
  13. AsyncStorage সমস্যা জেস্ট পরীক্ষায় ঘটতে পারে?
  14. হ্যাঁ, জেস্ট পরীক্ষার জন্য আপনাকে AsyncStorage উপহাস করতে হবে। লাইব্রেরি ব্যবহার করুন বা সঠিক পরীক্ষার জন্য একটি মক সেটআপ তৈরি করুন।
  15. এটি সমাধান করার জন্য আমার কি প্রতিক্রিয়া নেটিভ আপডেট করা উচিত?
  16. অগত্যা. নিশ্চিত করুন যে আপনার নির্ভরতাগুলি পরিবর্তে আপনার প্রতিক্রিয়া নেটিভ সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
  17. পুরানো প্রতিক্রিয়া নেটিভ সংস্করণের জন্য আমি কীভাবে ম্যানুয়ালি AsyncStorage লিঙ্ক করব?
  18. পরিবর্তন করুন android/settings.gradle এবং android/app/build.gradle, তারপর আপনার আপডেট করুন MainApplication.java.
  19. package.json-এ অনুপস্থিত নির্ভরতা কি এই ত্রুটির কারণ হতে পারে?
  20. হ্যাঁ, নিশ্চিত করুন @react-native-async-storage/async-storage আপনার নির্ভরতা তালিকাভুক্ত করা হয়.
  21. সমস্ত পদক্ষেপ অনুসরণ করার পরেও সমস্যাটি অব্যাহত থাকলে আমার কী করা উচিত?
  22. আপনার কনফিগারেশন পুনরায় পরীক্ষা করুন, আপনার নির্ভরতা আপডেট করুন এবং আপনার অ্যাপের একটি নতুন ইনস্টলেশন পরীক্ষা করুন।

নেটিভ মডিউল ত্রুটি ঠিক করার জন্য মূল উপায়

সমাধান করা নেটিভ মডিউল সমস্ত নির্ভরতা সঠিকভাবে ইনস্টল করা এবং লিঙ্ক করা হয়েছে কিনা তা নিশ্চিত করার পদ্ধতিগতভাবে ত্রুটি জড়িত। দৌড়ানোর মত সহজ ধাপ পড ইনস্টল এবং মেট্রো ক্যাশে সাফ করা একটি উল্লেখযোগ্য পার্থক্য করতে পারে। এই ফিক্সগুলি মসৃণ ইন্টিগ্রেশন নিশ্চিত করে এবং রানটাইম ব্যর্থতা এড়ায়।

সর্বদা আপনার প্রকল্প সেটআপ দুবার চেক করুন, বিশেষ করে এক্সপো থেকে বের হওয়ার পরে। আপনার অ্যাপের বিল্ড এনভায়রনমেন্ট বোঝা iOS এবং অ্যান্ড্রয়েড উভয় প্ল্যাটফর্মে সমস্যা মোকাবেলা করতে সাহায্য করে। এই কৌশলগুলির সাহায্যে, আপনি ডিবাগ করার সময় সাশ্রয় করবেন এবং রিঅ্যাক্ট নেটিভ প্রকল্পগুলি পরিচালনা করার ক্ষেত্রে আস্থা অর্জন করবেন। 😊

নেটিভমডিউল ত্রুটিগুলি সমাধানের জন্য উত্স এবং তথ্যসূত্র
  1. ডকুমেন্টেশন চালু অ্যাসিঙ্ক স্টোরেজ নেটিভ প্রতিক্রিয়ার জন্য: ইনস্টলেশন এবং ব্যবহারের নির্দেশিকা সম্পর্কে আরও জানুন। GitHub: AsyncStorage
  2. সমাধানের দিক নির্দেশনা কোকোপডস আইওএস রিঅ্যাক্ট নেটিভ প্রজেক্টে সমস্যা: সাধারণ কনফিগারেশন সমস্যার বিস্তারিত সমাধান। নেটিভ ডক্স প্রতিক্রিয়া
  3. মেট্রো বান্ডলার সম্পর্কিত তথ্য এবং বিল্ড ত্রুটিগুলি ঠিক করতে ক্যাশে সাফ করা: ডিবাগিংয়ের জন্য ব্যবহারিক পরামর্শ৷ মেট্রো ট্রাবলশুটিং গাইড
  4. রিঅ্যাক্ট নেটিভ-এ নেটিভ মডিউল একীভূত এবং পরীক্ষা করার জন্য সর্বোত্তম অনুশীলন: ধাপে ধাপে পরীক্ষা পদ্ধতি। জেস্ট রিঅ্যাক্ট নেটিভ টেস্টিং