我正在用模拟客户端编写Flutter集成测试,该客户端针对我的应用程序调用的每个REST端点返回JSON响应。 这些JSON响应存储在单独的JSON文件中,但是在测试运行时我无法访问这些文件。
我尝试通过创建和读取新文件对象来加载文件。 Flutter: how to load file for testing,但找不到文件。 我还尝试将JSON文件放入资产中。这行得通,但也导致我构建APK时捆绑了测试JSON文件。
简化的模拟客户端:
MockClient integrationMockClient = MockClient((request) async {
switch (request.url.toString()) {
case 'https://staging.company.com/api/123':
return Response(readJsonfile('myJsonFile.json'), 200);
简化的集成测试主要功能-将模拟客户端传入。test_driver/app.dart
void main() async {
enableFlutterDriverExtension();
final app = await initializeApp(
integrationMockClient
);
runApp(app);
}
当我尝试读取文件时,它永远找不到。可能是因为flutterDriver运行了“真实应用程序”,无法访问测试目录中存储的文件。
如何从集成测试访问JSON文件而不将其捆绑在生产代码/ APK中?
谢谢!