[英]How to make a http request in a flutter widget test?
I'm trying to make an HTTP request from within a flutter widget test, but for some reason, the widget test always times out after 5 sec, whereas it works perfectly fine in a unit test.我正在尝试从 flutter 小部件测试中发出 HTTP 请求,但由于某种原因,小部件测试总是在 5 秒后超时,而它在单元测试中运行良好。
import 'package:flutter_test/flutter_test.dart';
import 'dart:io';
import 'dart:convert';
void main() {
test('http unit-test works', () async {
var httpClient = new HttpClient();
var request = await httpClient.getUrl(Uri.parse('https://api.ipify.org/'));
var response = await request.close();
var responseBody = await response.transform(UTF8.decoder).join();
print('BODY: $responseBody');
});
testWidgets('http widget-test does not work', (WidgetTester tester) async {
var httpClient = new HttpClient();
var request = await httpClient.getUrl(Uri.parse('https://api.ipify.org/'));
var response = await request.close();
var responseBody = await response.transform(UTF8.decoder).join();
print('BODY: $responseBody');
});
}
Is the flutter test environment eating my HTTP request here? flutter 测试环境是否在这里吃掉了我的 HTTP 请求? How can I prevent it from doing this?我怎样才能防止它这样做?
If the cause of the issue is timeouts as you've mentioned, I suggest trying a different network during tests.如果问题的原因是您提到的超时,我建议在测试期间尝试不同的网络。 WidgetTester
shouldn't cause issues on HTTP Requests in Flutter Unit Tests. WidgetTester
不应导致 Flutter 单元测试中的 HTTP 请求出现问题。 I tried the repro provided, but it worked fine on my tests.我尝试了提供的 repro,但它在我的测试中运行良好。
For reference, here's the version of Flutter I'm running on: Flutter version 1.26.0-2.0.pre.281
作为参考,这是我正在运行的Flutter version 1.26.0-2.0.pre.281
: Flutter version 1.26.0-2.0.pre.281
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.