macOS下Flutter应用Object Box单元测试失败求助
解决macOS Flutter Object Box单元测试
RangeError (byteOffset)错误 针对你在macOS上运行Flutter应用Object Box单元测试时,调用query.find()触发RangeError (byteOffset): Invalid value: Valid value range is empty: 0的问题,可通过以下方式解决:
升级Object Box版本
你使用的1.6.2版本存在已知的空数据查询异常问题,后续版本(2.x及以上)已修复该bug。直接修改pubspec.yaml中objectbox和objectbox_flutter_libs的版本为最新稳定版,执行flutter pub get更新依赖即可。检查测试环境的数据库初始化
单元测试中若未正确初始化BoxStore,或数据库临时目录未创建,会导致查询时读取无效数据。确保测试前后完成Store的初始化与销毁:late BoxStore store; setUp(() async { final tempDir = await getTemporaryDirectory(); store = await openStore(directory: tempDir.path); }); tearDown(() { store.close(); });提前判断数据是否为空
在旧版本中,当Box内无数据时调用query.find()可能触发异常,可先判断Box状态再执行查询:if (_box.isEmpty) { return []; } final query = _box.query(any query).build(); final data = query.find(); query.close(); return data;
内容的提问来源于stack exchange,提问作者raphire
相关产品推荐
相关产品推荐

