Dart:
টেস্ট লিখা
কিভাবে:
Dart-এ, test প্যাকেজ টেস্ট লেখার জন্য সাধারণত ব্যবহৃত হয়। প্রথমে, তোমার pubspec.yaml-এ test প্যাকেজ যোগ কর:
dev_dependencies:
test: ^1.0.0তারপর, একটি সিম্পল ফাংশনের জন্য একটি টেস্ট লিখ। ধর, তোমার কাছে একটি ফাংশন আছে যেটি দুই সংখ্যা যুক্ত করে:
int add(int a, int b) {
return a + b;
}এরপর, test ডিরেক্টরিতে add_test.dart নামে একটি ফাইল তৈরি কর এবং তোমার টেস্ট কেস লিখ:
import 'package:test/test.dart';
import '../lib/add.dart'; // ধরে নাও তোমার `add` ফাংশনটি lib/add.dart এ আছে
void main() {
test('adds two numbers', () {
var expected = 3;
expect(add(1, 2), equals(expected));
});
}টেস্টগুলি রান করতে, Dart কমান্ড ব্যবহার কর:
$ dart testসেম্পল আউটপুট হতে পারে:
00:01 +1: All tests passed!থার্ড-পার্টি লাইব্রেরি ব্যবহার: মকিংয়ের জন্য Mockito
যদি জটিল ডিপেন্ডেন্সি সহ কোড টেস্ট করতে যাও, তাহলে তুমি মক অবজেক্ট তৈরি করার জন্য Mockito ব্যবহার করতে পারো। প্রথমে, তোমার pubspec.yaml-এ Mockito যোগ কর:
dev_dependencies:
mockito: ^5.0.0ধর, তোমার কাছে একটি ক্লাস UserRepository আছে যেটি ইউজার ডাটা ফেচ করে, এবং তুমি একটি UserService টেস্ট করতে চাও যা UserRepository-এর উপর নির্ভর করে রিয়েল ডাটাবেইস হিট ছাড়াই:
import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:your_project/user_repository.dart';
import 'package:your_project/user_service.dart';
// Mockito ব্যবহার করে একটি Mock ক্লাস তৈরি কর
class MockUserRepository extends Mock implements UserRepository {}
void main() {
group('UserService Tests', () {
test('Fetches user successfully', () {
// মক ইনস্ট্যান্স তৈরি কর
final mockUserRepository = MockUserRepository();
final userService = UserService(mockUserRepository);
// মক আচরণ সেট আপ কর
when(mockUserRepository.fetchUser(1)).thenReturn(User(id: 1, name: 'Test User'));
// মক মেথডটি প্রত্যাশিত আর্গুমেন্ট নিয়ে কল করা হয়েছে সেটা আশা করা
expect(userService.getUserName(1), 'Test User');
verify(mockUserRepository.fetchUser(1)).called(1);
});
});
}এই টেস্ট রান করা নিশ্চিত করে যে UserService ঠিকমতো UserRepository-এর সাথে ইন্টারেক্ট করেছে, মকিং ব্যবহার করে রিয়েল ইন্টারেকশনগুলিকে একটি নিয়ন্ত্রিত উপায়ে সিমুলেট করে।