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
नामक एक क्लास है जो उपयोगकर्ता डेटा प्राप्त करती है, और आप एक वास्तविक डेटाबेस को हिट किए बिना UserRepository
पर निर्भर UserService
का परीक्षण करना चाहते हैं:
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 is Mock implements UserRepository {}
void main() {
group('UserService Tests', () {
test('Fetches user successfully', () {
// Mock instance बनाएं
final mockUserRepository = MockUserRepository();
final userService = UserService(mockUserRepository);
// Mock व्यवहार सेटअप करें
when(mockUserRepository.fetchUser(1)).thenReturn(User(id: 1, name: 'Test User'));
// Assert करें कि मॉक किए गए तरीके को अपेक्षित तर्कों के साथ बुलाया गया है
expect(userService.getUserName(1), 'Test User');
verify(mockUserRepository.fetchUser(1)).called(1);
});
});
}
यह परीक्षण चलाना पुष्टि करता है कि UserService
सही ढंग से UserRepository
के साथ इंटरैक्ट करती है, मॉकिंग का उपयोग करके नियंत्रित तरीके से वास्तविक इंटरेक्शन्स का अनुकरण करती है।