Skip to content

Commit 3ecf793

Browse files
committed
refactor(test): define mocks in one place to avoid duplicacy
1 parent 755931c commit 3ecf793

File tree

6 files changed

+25
-33
lines changed

6 files changed

+25
-33
lines changed

test/helpers/helpers.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
export 'mocks.dart';
12
export 'pump_app.dart';
23
export 'set_display_size.dart';

test/helpers/mocks.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import 'package:bloc_test/bloc_test.dart';
2+
import 'package:mocktail/mocktail.dart';
3+
import 'package:sudoku/models/models.dart';
4+
import 'package:sudoku/sudoku/sudoku.dart';
5+
6+
class MockSudoku extends Mock implements Sudoku {}
7+
8+
class MockSudokuBloc extends MockBloc<SudokuEvent, SudokuState>
9+
implements SudokuBloc {}
10+
11+
class MockSudokuState extends Mock implements SudokuState {}
12+
13+
class MockBlock extends Mock implements Block {}

test/helpers/pump_app.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
import 'package:bloc_test/bloc_test.dart';
21
import 'package:flutter/material.dart';
32
import 'package:flutter_bloc/flutter_bloc.dart';
43
import 'package:flutter_test/flutter_test.dart';
54
import 'package:sudoku/l10n/l10n.dart';
65
import 'package:sudoku/sudoku/sudoku.dart';
76

8-
class _MockSudokuBloc extends MockBloc<SudokuEvent, SudokuState>
9-
implements SudokuBloc {}
7+
import 'helpers.dart';
108

119
extension PumpApp on WidgetTester {
1210
Future<void> pumpApp(Widget widget, {SudokuBloc? sudokuBloc}) {
1311
return pumpWidget(
1412
BlocProvider<SudokuBloc>.value(
15-
value: sudokuBloc ?? _MockSudokuBloc(),
13+
value: sudokuBloc ?? MockSudokuBloc(),
1614
child: MaterialApp(
1715
localizationsDelegates: AppLocalizations.localizationsDelegates,
1816
supportedLocales: AppLocalizations.supportedLocales,

test/sudoku/view/sudoku_page_test.dart

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// ignore_for_file: prefer_const_constructors
22

3-
import 'package:bloc_test/bloc_test.dart';
43
import 'package:flutter/material.dart';
54
import 'package:flutter_test/flutter_test.dart';
65
import 'package:mocktail/mocktail.dart';
@@ -10,11 +9,6 @@ import 'package:sudoku/sudoku/sudoku.dart';
109

1110
import '../../helpers/helpers.dart';
1211

13-
class _MockSudokuBloc extends MockBloc<SudokuEvent, SudokuState>
14-
implements SudokuBloc {}
15-
16-
class _MockSudoku extends Mock implements Sudoku {}
17-
1812
void main() {
1913
group('SudokuPage', () {
2014
testWidgets('renders SudokuView', (tester) async {
@@ -28,8 +22,8 @@ void main() {
2822
late Sudoku sudoku;
2923

3024
setUp(() {
31-
sudokuBloc = _MockSudokuBloc();
32-
sudoku = _MockSudoku();
25+
sudokuBloc = MockSudokuBloc();
26+
sudoku = MockSudoku();
3327
when(() => sudoku.getDimesion()).thenReturn(3);
3428
when(() => sudoku.blocks).thenReturn([]);
3529
when(() => sudokuBloc.state).thenReturn(
@@ -70,8 +64,8 @@ void main() {
7064
late Sudoku sudoku;
7165

7266
setUp(() {
73-
sudokuBloc = _MockSudokuBloc();
74-
sudoku = _MockSudoku();
67+
sudokuBloc = MockSudokuBloc();
68+
sudoku = MockSudoku();
7569
when(() => sudoku.getDimesion()).thenReturn(3);
7670
when(() => sudoku.blocks).thenReturn([]);
7771
when(() => sudokuBloc.state).thenReturn(

test/sudoku/widgets/sudoku_block_test.dart

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// ignore_for_file: prefer_const_constructors
22

3-
import 'package:bloc_test/bloc_test.dart';
43
import 'package:flutter/material.dart';
54
import 'package:flutter_test/flutter_test.dart';
65
import 'package:mocktail/mocktail.dart';
@@ -9,15 +8,6 @@ import 'package:sudoku/sudoku/sudoku.dart';
98

109
import '../../helpers/helpers.dart';
1110

12-
class _MockSudokuBloc extends MockBloc<SudokuEvent, SudokuState>
13-
implements SudokuBloc {}
14-
15-
class _MockSudokuState extends Mock implements SudokuState {}
16-
17-
class _MockSudoku extends Mock implements Sudoku {}
18-
19-
class _MockBlock extends Mock implements Block {}
20-
2111
void main() {
2212
group('SudokuBlock', () {
2313
final block = Block(
@@ -35,15 +25,15 @@ void main() {
3525
late SudokuState state;
3626

3727
setUp(() {
38-
sudoku = _MockSudoku();
28+
sudoku = MockSudoku();
3929
when(() => sudoku.getDimesion()).thenReturn(3);
4030

41-
state = _MockSudokuState();
31+
state = MockSudokuState();
4232
when(() => state.sudoku).thenReturn(sudoku);
4333
when(() => state.highlightedBlocks).thenReturn({});
4434
when(() => state.currentSelectedBlock).thenReturn(block);
4535

46-
bloc = _MockSudokuBloc();
36+
bloc = MockSudokuBloc();
4737
when(() => bloc.state).thenReturn(state);
4838
});
4939

@@ -98,7 +88,7 @@ void main() {
9888
testWidgets(
9989
'renders block when block is part of highlighted, but not selcted',
10090
(tester) async {
101-
final otherBlock = _MockBlock();
91+
final otherBlock = MockBlock();
10292
when(() => otherBlock.position).thenReturn(Position(x: 0, y: 1));
10393

10494
when(() => state.highlightedBlocks).thenReturn({block});

test/sudoku/widgets/sudoku_input_test.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
// ignore_for_file: prefer_const_constructors
22

3-
import 'package:bloc_test/bloc_test.dart';
43
import 'package:flutter/material.dart';
54
import 'package:flutter_test/flutter_test.dart';
65
import 'package:mocktail/mocktail.dart';
76
import 'package:sudoku/sudoku/sudoku.dart';
87

98
import '../../helpers/helpers.dart';
109

11-
class _MockSudokuBloc extends MockBloc<SudokuEvent, SudokuState>
12-
implements SudokuBloc {}
13-
1410
void main() {
1511
group('SudokuInput', () {
1612
const largeInputKey = 'sudoku_input_large';
@@ -20,7 +16,7 @@ void main() {
2016
late SudokuBloc sudokuBloc;
2117

2218
setUp(() {
23-
sudokuBloc = _MockSudokuBloc();
19+
sudokuBloc = MockSudokuBloc();
2420
});
2521

2622
testWidgets(

0 commit comments

Comments
 (0)