Flutter测试:MissingPluginException(在通道plugins.flutter.io/shared_preferences上未找到方法getAll的实现)

时间:2019-12-23 14:49:17

标签: flutter flutter-dependencies flutter-test

我正在尝试测试一个进行api调用并将该数据保存到共享首选项的函数。我正在嘲笑我的api调用,但是在该函数中,当我尝试获取共享首选项的实例时,出现此错误:

  

MissingPluginException(在通道plugins.flutter.io/shared_preferences上未找到方法getAll的实现)

这是我的测试用例代码。

main() {
 // setup
group("Login", () {
setUp(() {
  flutterTest.TestWidgetsFlutterBinding.ensureInitialized();
});
test("Valid Creds Login", () async {
  final validRes = ExpectedResponses.login();
  final client = MockClient((request) async {
    final res = json.encode(validRes);
    return Response(res, 200);
  });
  ApiController.init(client);

  final user = await ApiController.login(
      email: "abc@gmail.com", password: "12345678");
  expectAsync0(() {
    expect(user.id, "1763");
  });
}, skip: false);
});
}

3 个答案:

答案 0 :(得分:0)

在我的情况下,此错误通过终端上的flutter clean命令解决。

答案 1 :(得分:0)

版本shared_preferences: ^0.5.12

ad SharedPreferences.setMockInitialValues({}); 在Flutter App主要功能中的runApp()函数之前

为我修复此错误

enter image description here

答案 2 :(得分:0)

下面的代码在我的android项目中运行完美。

  class MainActivity : FlutterActivity() {

     override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {

             GeneratedPluginRegistrant.registerWith(flutterEngine)
      }
    }