The method 'containsKey' was called on null flutter

218 views Asked by At

Before, my integration test works. After I pull an update of another developer my integration test fails with the following error:

══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following NoSuchMethodError was thrown running a test:
The method 'containsKey' was called on null.
Receiver: null
Tried calling: containsKey("serverStatus")

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5)
#1      _IndexState._referAFriendEnabled (package:limitless/pages/index.dart:1390:15)
Transition { currentState: HomeInitial(), event: FetchHomeCarousels(), nextState: HomeInitial() }
Transition { currentState: InitialInboxState(), event: InboxFetch(), nextState: InboxFetchingData() }
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following assertion was thrown running a test (but after the test had completed):
'package:flutter_test/src/binding.dart': Failed assertion: line 1558 pos 12: 'inTest': is not true.

When the exception was thrown, this was the stack:
#2      LiveTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1558:12)
#3      WidgetTester.pumpAndSettle.<anonymous closure> (package:flutter_test/src/widget_tester.dart:668:23)
<asynchronous suspension>
<asynchronous suspension>
(elided 3 frames from class _AssertionError and package:stack_trace)
════════════════════════════════════════════════════════════════════════════════════════════════════
03:29 +0 -1: end-to-end test limitless non-transactional test
CustomerStart { }
Transition { currentState: CustomerInitial(), event: CustomerStart { }, nextState: CustomerLoading() }
03:31 +0 -1: Some tests failed.

Running the app works fine. It only fails when running integration test.

This is code snippet about containsKey.

void _referAFriendEnabled() async {
    bool referralEnabled = false;
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    if (prefs.containsKey('serverStatus')) {
      Map appSettings = await AppSharedPref.getServerStatus();
      limitlessRepo.appVersion = appSettings["app_version"];
      limitlessRepo.storeVersion = appSettings["latest_store_app_version"];
      referralEnabled = appSettings["referral_code"];
      limitlessRepo.version = packageInfo.version;
    } else {
      await limitlessRepo.isReferralCodeEnabled();
    }
    newVersionAvailable();
    setState(() {
      _isReferralEnabled = referralEnabled;
    });

Does anyone has an idea about this? Thank you.

0

There are 0 answers