Я новичок во Flutter, а также в TDD, и я не понимаю, почему и когда помечать модульный тест как асинхронный во флаттере.
Просматривая документацию, я нашел этот фрагмент кода:
// Create a MockClient using the Mock class provided by the Mockito package.
// Create new instances of this class in each test.
class MockClient extends Mock implements http.Client {}
main() {
group('fetchPost', () {
test('returns a Post if the http call completes successfully', () async {
final client = MockClient();
// Use Mockito to return a successful response when it calls the
// provided http.Client.
when(client.get('https://jsonplaceholder.typicode.com/posts/1'))
.thenAnswer((_) async => http.Response('{"title": "Test"}', 200));
expect(await fetchPost(client), const TypeMatcher<Post>());
});
test('throws an exception if the http call completes with an error', () {
final client = MockClient();
// Use Mockito to return an unsuccessful response when it calls the
// provided http.Client.
when(client.get('https://jsonplaceholder.typicode.com/posts/1'))
.thenAnswer((_) async => http.Response('Not Found', 404));
expect(fetchPost(client), throwsException);
});
});
}
Если вы посмотрите внимательно, то заметите, что первый тест помечен как асинхронный, а второй — нет. Почему это? В чем разница между этими двумя тестами (кроме случаев), так что первый должен быть асинхронным?
Спасибо :)