Closed fnemethy closed 2 months ago
Don't use Mockito or Mocktail since it has FlutterSecureStorage.setMockInitialValues
https://github.com/mogol/flutter_secure_storage/issues/471
I am closing all older issues. If this issue still exists in the latest version, please let me know.
Hi All,
I have a problem with Flutter Secure Storage unit testing. If I mocked it with Mockito, I got this error:
package:test_core/src/runner/vm/platform.dart 252:7 VMPlatform._compileToKernel ===== asynchronous gap =========================== package:test_core/src/runner/vm/platform.dart 231:13 VMPlatform._spawnIsolate ===== asynchronous gap =========================== package:test_core/src/runner/vm/platform.dart 76:19 VMPlatform.load ===== asynchronous gap =========================== package:test_core/src/runner/loader.dart 227:27 Loader.loadFile.
===== asynchronous gap ===========================
package:test_core/src/runner/load_suite.dart 98:19 new LoadSuite..
Failed to load "/Users/mbp37/Projects/new/****/packages/user_repository/test/user_repository_test.dart": ../../../../../../development/flutter/packages/flutter/lib/src/foundation/debug.dart:5:8: Error: Dart library 'dart:ui' is not available on this platform. import 'dart:ui' as ui show Brightness;
. ... ..
package:user_repository/src/user_secure_storage.dart => package:flutter_secure_storage/flutter_secure_storage.dart => package:flutter/foundation.dart => package:flutter/src/foundation/memory_allocations.dart => package:flutter/src/foundation/assertions.dart => package:flutter/src/foundation/diagnostics.dart => package:flutter/src/foundation/debug.dart => dart:ui
The test:
import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; import 'package:remote_api/remote_api.dart'; import 'package:user_repository/src/user_secure_storage.dart'; import 'package:user_repository/user_repository.dart';
import 'user_repository_test.mocks.dart';
@GenerateMocks([UserSecureStorage, RemoteApi]) void main() { final _userSecureStorage = MockUserSecureStorage(); final _remoteApi = MockRemoteApi(); final _userRepository = UserRepository( remoteApi: _remoteApi, secureStorage: _userSecureStorage, );
group('User authentication token:', () { test( 'When calling getUserToken after successful authentication, return authentication token', () async { final String token = 'token';
}); }
I use the latest 9.0.0 version with this dev dependecies: dev_dependencies: mockito: ^5.4.2 test: ^1.24.6 build_runner: ^2.4.6