3
votes

Test de flutter: MissingPluginException (aucune implémentation trouvée pour la méthode getAll sur le canal plugins.flutter.io/shared_preferences)

J'essaie de tester une fonction qui effectue un appel API et enregistre ces données dans des préférences partagées. Je me moque de mon appel API, mais dans cette fonction, lorsque j'essaye d'obtenir une instance de préférences partagées, j'obtiens cette erreur:

MissingPluginException (Aucune implémentation trouvée pour la méthode getAll sur le canal plugins.flutter.io/shared_preferences)

Ceci est mon code de cas de test.

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);
});
}


6 commentaires

est-ce que cela aide? stackoverflow.com/questions/44357053/...


Non. Mon problème est lié à l'enregistrement des valeurs dans SharedPreferences.


Avez-vous entièrement reconstruit votre application depuis l'installation du package SharedPreferences? Quelle version du package et de Flutter utilisez-vous?


J'exécute un test unitaire pour cela, dans l'application réelle, il fonctionne bien. Préférences partagées: 0.5.6 | Flutter: 1.12.13 + hotfix.6


Est-ce que cela répond à votre question? Exception non gérée: MissingPluginException (aucune implémentation trouvée pour la méthode getAll sur le canal plugins.flutter.io/ pour de nombreux packages sur Flutter


Cela m'a aidé stackoverflow.com/questions/44357053/...


3 Réponses :


0
votes

Dans mon cas, cette erreur a été résolue par la commande Flutter Clean sur le terminal.


0 commentaires

0
votes

version shared_preferences: ^0.5.12

ad SharedPreferences.setMockInitialValues({}); avant la fonction runApp() dans la fonction principale de Flutter App

corrige cette erreur pour moi

entrez la description de l'image ici


0 commentaires

0
votes

Le code ci-dessous fonctionne parfaitement dans mon projet Android.

  class MainActivity : FlutterActivity() {

     override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {

             GeneratedPluginRegistrant.registerWith(flutterEngine)
      }
    }


0 commentaires