我正在测试这个函数:
void store(String x, String y) async {
Map<String, dynamic> map = {
'x': x,
'y': y,
};
var jsonString = json.encode(map);
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('fileName', jsonString);
}
我看到我可以使用以下项填充共享首选项
const MethodChannel('plugins.flutter.io/shared_preferences')
.setMockMethodCallHandler((MethodCall methodCall) async {
if (methodCall.method == 'getAll') {
return <String, dynamic>{}; // set initial values here if desired
}
return null;
});
但我不知道如何使用,尤其是在我的情况下。
4条答案
按热度按时间7vux5j2d1#
您可以使用
SharedPreferences.setMockInitialValues
进行测试wz1wpwve2#
感谢nonybrighto提供的有用答案。
我在尝试使用以下命令在共享首选项中设置初始值时遇到了麻烦:
shared_preferences插件似乎希望key具有前缀
flutter.
。因此,如果使用上述方法进行模拟,则需要添加到您自己的密钥中。第20章为了证明这点:https://github.com/flutter/plugins/blob/2ea4bc8f8b5ae652f02e3db91b4b0adbdd499357/packages/shared_preferences/shared_preferences/lib/shared_preferences.dart
mlnl4t2r3#
我不知道这是否对你有帮助,但在找到这个解决方案之前,我也浪费了很多时间
LocalDataSourceImp.test.dart
LocalDataSourceImp.dart
yquaqz184#
在main函数中添加这个
TestWidgetsFlutterBinding.ensureInitialized();
,为我解决了