Skip to content
This repository was archived by the owner on Apr 14, 2026. It is now read-only.

Commit 32099b4

Browse files
fix: mockito compatibility (#1)
* fix: attempt to fix mockito compatibility * fix mockito compatibility
1 parent 7880cf2 commit 32099b4

2 files changed

Lines changed: 22 additions & 23 deletions

File tree

lib/mock_navigator.dart

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import 'package:mockito/mockito.dart' as mockito;
1111
class FakeRoute<T> extends mocktail.Fake implements Route<T> {}
1212

1313
/// {@template mock_navigator_provider}
14-
/// The widget that provides an instance of a [MockNavigator].
14+
/// The widget that provides an instance of a [MockNavigatorBase].
1515
/// {@endtemplate}
1616
class MockNavigatorProvider extends Navigator {
1717
/// {@macro mock_navigator_provider}
@@ -21,8 +21,8 @@ class MockNavigatorProvider extends Navigator {
2121
required this.navigator,
2222
}) : super(key: key);
2323

24-
/// The [MockNavigator] used to mock navigation calls.
25-
final MockNavigator navigator;
24+
/// The mock navigator used to mock navigation calls.
25+
final MockNavigatorBase navigator;
2626

2727
/// The [Widget] to render.
2828
final Widget child;
@@ -38,23 +38,22 @@ class MockNavigatorProvider extends Navigator {
3838
}
3939
}
4040

41-
/// The navigator of which the behavior can be defined through using either the
42-
/// [MocktailNavigator] or [MockitoNavigator].a
43-
abstract class MockNavigator implements NavigatorState {}
41+
/// The navigator of which the behavior can be defined through mocking.
42+
///
43+
///
44+
/// ```dart
45+
/// import 'package:mockito/mockito.dart';
46+
/// // OR
47+
/// import 'package:mocktail/mocktail.dart';
48+
///
49+
/// class MockNavigator extends Mock
50+
/// with MockNavigatorDiagnosticsMixin
51+
/// implements MockNavigatorBase {}
52+
/// ```
53+
abstract class MockNavigatorBase implements NavigatorState {}
4454

45-
/// The navigator of which the behavior can be defined through mocking using the
46-
/// `mocktail` package.
47-
class MocktailNavigator extends mocktail.Mock
48-
with _DiagnosticStringMixin
49-
implements MockNavigator {}
50-
51-
/// The navigator of which the behavior can be defined through mocking using the
52-
/// `mockito` package.
53-
class MockitoNavigator extends mocktail.Mock
54-
with _DiagnosticStringMixin
55-
implements MockNavigator {}
56-
57-
mixin _DiagnosticStringMixin on Object {
55+
/// A mixin necessary when implementing a [MockNavigatorBase].
56+
mixin MockNavigatorDiagnosticsMixin on Object {
5857
@override
5958
String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
6059
return super.toString();
@@ -64,7 +63,7 @@ mixin _DiagnosticStringMixin on Object {
6463
class _MockNavigatorState extends NavigatorState {
6564
_MockNavigatorState({required this.navigator});
6665

67-
MockNavigator navigator;
66+
MockNavigatorBase navigator;
6867
Widget? child;
6968

7069
@override

pubspec.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ environment:
1111
dependencies:
1212
flutter:
1313
sdk: flutter
14+
mockito: 4.1.3
15+
mocktail: 0.1.1
1416

1517
dev_dependencies:
1618
flutter_test:
1719
sdk: flutter
18-
coverage: 1.0.2
19-
mockito: 5.0.5
20-
mocktail: 0.1.1
20+
coverage: 0.15.2
2121
very_good_analysis: 2.0.3

0 commit comments

Comments
 (0)