Showing
2 changed files
with
17 additions
and
59 deletions
1 | import 'dart:io'; | 1 | import 'dart:io'; |
2 | -import 'dart:math'; | ||
3 | 2 | ||
4 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
5 | import 'package:flutter_test/flutter_test.dart'; | 4 | import 'package:flutter_test/flutter_test.dart'; |
@@ -11,12 +10,9 @@ import 'package:get_demo/pages/home/presentation/controllers/home_controller.dar | @@ -11,12 +10,9 @@ import 'package:get_demo/pages/home/presentation/controllers/home_controller.dar | ||
11 | // import 'package:get_test/get_test.dart'; | 10 | // import 'package:get_test/get_test.dart'; |
12 | import 'package:matcher/matcher.dart' as m; | 11 | import 'package:matcher/matcher.dart' as m; |
13 | 12 | ||
14 | -class MockRepository implements IHomeRepository { | 13 | +class MockRepositorySuccess implements IHomeRepository { |
15 | @override | 14 | @override |
16 | Future<CasesModel> getCases() async { | 15 | Future<CasesModel> getCases() async { |
17 | - await Future.delayed(Duration(milliseconds: 100)); | ||
18 | - | ||
19 | - if (Random().nextBool()) { | ||
20 | return CasesModel( | 16 | return CasesModel( |
21 | global: Global( | 17 | global: Global( |
22 | totalDeaths: 100, | 18 | totalDeaths: 100, |
@@ -32,7 +28,11 @@ class MockRepository implements IHomeRepository { | @@ -32,7 +28,11 @@ class MockRepository implements IHomeRepository { | ||
32 | message: '', | 28 | message: '', |
33 | ); | 29 | ); |
34 | } | 30 | } |
31 | +} | ||
35 | 32 | ||
33 | +class MockRepositoryFailure implements IHomeRepository { | ||
34 | + @override | ||
35 | + Future<CasesModel> getCases() async { | ||
36 | return Future<CasesModel>.error('error'); | 36 | return Future<CasesModel>.error('error'); |
37 | } | 37 | } |
38 | } | 38 | } |
@@ -41,28 +41,18 @@ void main() { | @@ -41,28 +41,18 @@ void main() { | ||
41 | WidgetsFlutterBinding.ensureInitialized(); | 41 | WidgetsFlutterBinding.ensureInitialized(); |
42 | setUpAll(() => HttpOverrides.global = null); | 42 | setUpAll(() => HttpOverrides.global = null); |
43 | final binding = BindingsBuilder(() { | 43 | final binding = BindingsBuilder(() { |
44 | - Get.lazyPut<IHomeRepository>(() => MockRepository()); | 44 | + Get.lazyPut<IHomeRepository>(() => MockRepositorySuccess()); |
45 | Get.lazyPut<HomeController>( | 45 | Get.lazyPut<HomeController>( |
46 | - () => HomeController(homeRepository: Get.find())); | 46 | + () => HomeController(homeRepository: Get.find()), |
47 | + ); | ||
47 | }); | 48 | }); |
48 | 49 | ||
49 | - test('Test Binding', () { | ||
50 | - expect(Get.isPrepared<HomeController>(), false); | ||
51 | - expect(Get.isPrepared<IHomeRepository>(), false); | ||
52 | - | ||
53 | - /// test you Binding class with BindingsBuilder | ||
54 | - binding.builder(); | ||
55 | - | ||
56 | - expect(Get.isPrepared<HomeController>(), true); | ||
57 | - expect(Get.isPrepared<IHomeRepository>(), true); | ||
58 | - | ||
59 | - Get.reset(); | ||
60 | - }); | ||
61 | test('Test Controller', () async { | 50 | test('Test Controller', () async { |
62 | /// Controller can't be on memory | 51 | /// Controller can't be on memory |
63 | - expect(() => Get.find<HomeController>(), throwsA(m.TypeMatcher<String>())); | 52 | + expect(() => Get.find<HomeController>(tag: 'success'), |
53 | + throwsA(m.TypeMatcher<String>())); | ||
64 | 54 | ||
65 | - /// build Binding | 55 | + /// binding will put the controller on memory |
66 | binding.builder(); | 56 | binding.builder(); |
67 | 57 | ||
68 | /// recover your controller | 58 | /// recover your controller |
@@ -77,24 +67,15 @@ void main() { | @@ -77,24 +67,15 @@ void main() { | ||
77 | /// await time request | 67 | /// await time request |
78 | await Future.delayed(Duration(milliseconds: 100)); | 68 | await Future.delayed(Duration(milliseconds: 100)); |
79 | 69 | ||
80 | - if (controller.status.isError) { | ||
81 | - expect(controller.state, null); | ||
82 | - } | ||
83 | - | ||
84 | - if (controller.status.isSuccess) { | 70 | + /// test if status is success |
71 | + expect(controller.status.isSuccess, true); | ||
85 | expect(controller.state.global.totalDeaths, 100); | 72 | expect(controller.state.global.totalDeaths, 100); |
86 | expect(controller.state.global.totalConfirmed, 200); | 73 | expect(controller.state.global.totalConfirmed, 200); |
87 | - } | ||
88 | - }); | ||
89 | 74 | ||
90 | - test('ever', () async { | ||
91 | - final count = ''.obs; | ||
92 | - var result = ''; | ||
93 | - ever<String>(count, (value) { | ||
94 | - result = value; | ||
95 | - }); | ||
96 | - count.value = '1'; | ||
97 | - expect('1', result); | 75 | + /// test if status is error |
76 | + Get.lazyReplace<IHomeRepository>(() => MockRepositoryFailure()); | ||
77 | + expect(controller.status.isError, true); | ||
78 | + expect(controller.state, null); | ||
98 | }); | 79 | }); |
99 | 80 | ||
100 | /// Tests with GetTests | 81 | /// Tests with GetTests |
@@ -151,26 +132,3 @@ void main() { | @@ -151,26 +132,3 @@ void main() { | ||
151 | }, | 132 | }, |
152 | );*/ | 133 | );*/ |
153 | } | 134 | } |
154 | - | ||
155 | -class Controller extends GetxController { | ||
156 | - final count = 0.obs; | ||
157 | - void increment() => count.value++; | ||
158 | - | ||
159 | - @override | ||
160 | - void onInit() { | ||
161 | - print('inittt'); | ||
162 | - super.onInit(); | ||
163 | - } | ||
164 | - | ||
165 | - @override | ||
166 | - void onReady() { | ||
167 | - print('onReady'); | ||
168 | - super.onReady(); | ||
169 | - } | ||
170 | - | ||
171 | - @override | ||
172 | - void onClose() { | ||
173 | - super.onClose(); | ||
174 | - print('onClose'); | ||
175 | - } | ||
176 | -} |
example/test/widget_test.dart
0 → 100644
-
Please register or login to post a comment