Dart:
כתיבת בדיקות
איך לעשות:
ב-Dart, החבילה test משמשת לעיתים קרובות לכתיבת טסטים. ראשית, הוסף את חבילת הtest לpubspec.yaml שלך:
dev_dependencies:
test: ^1.0.0לאחר מכן, כתוב טסט לפונקציה פשוטה. נניח שיש לך פונקציה שמוסיפה שני מספרים:
int add(int a, int b) {
return a + b;
}לאחר מכן, צור קובץ בשם add_test.dart בתיקייה test וכתוב את מקרה הבדיקה שלך:
import 'package:test/test.dart';
import '../lib/add.dart'; // נניח שהפונקציה `add` שלך נמצאת בlib/add.dart
void main() {
test('מוסיפה שני מספרים', () {
var expected = 3;
expect(add(1, 2), equals(expected));
});
}להרצת הטסטים, השתמש בפקודת Dart:
$ dart testפלט לדוגמה עשוי להיראות כך:
00:01 +1: כל הטסטים עברו!שימוש בספרייה צד שלישי: Mockito למוקינג
לבדיקת קוד שיש לו תלות מורכבת, ייתכן שתשתמש ב-Mockito ליצירת אובייקטים מדומים. ראשית, הוסף את Mockito לpubspec.yaml שלך:
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';
// יצירת כיתת Mock באמצעות Mockito
class MockUserRepository extends Mock implements UserRepository {}
void main() {
group('בדיקות UserService', () {
test('משיג משתמש בהצלחה', () {
// יצירת מופע מדומה
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, באמצעות מוקינג כדי לדמות את האינטראקציות האמיתיות בדרך שליטה.