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
-এর সাথে ইন্টারেক্ট করেছে, মকিং ব্যবহার করে রিয়েল ইন্টারেকশনগুলিকে একটি নিয়ন্ত্রিত উপায়ে সিমুলেট করে।