Тестирование в Dart
Юнит-тесты (package:test)
Обычно в проектах используют пакет test.
Добавить
bash
dart pub add --dev testЗапустить
bash
dart testПример теста
dart
import 'package:test/test.dart';
int add(int a, int b) => a + b;
void main() {
test('adds numbers', () {
expect(add(2, 2), 4);
});
}Группы и setUp/tearDown
dart
import 'package:test/test.dart';
void main() {
late List<int> xs;
setUp(() {
xs = [];
});
tearDown(() {
xs.clear();
});
group('list', () {
test('starts empty', () {
expect(xs, isEmpty);
});
test('can add', () {
xs.add(1);
expect(xs, [1]);
});
});
}Тесты async
dart
import 'package:test/test.dart';
Future<int> fetch() async => 1;
void main() {
test('async test', () async {
final x = await fetch();
expect(x, 1);
});
}Matchers, которые часто используют
equals(x)/ простоxisNull,isNotNullisA<T>()throwsA(...)
dart
import 'package:test/test.dart';
void main() {
test('throws', () {
expect(() => throw Exception('fail'), throwsA(isA<Exception>()));
});
}