Showing
1 changed file
with
67 additions
and
0 deletions
@@ -1090,6 +1090,73 @@ class SettingsService extends GetxService { | @@ -1090,6 +1090,73 @@ class SettingsService extends GetxService { | ||
1090 | 따라서 앱 실행중 절대로 유지되어야 하는 클래스 인스턴스가 필요하면 | 1090 | 따라서 앱 실행중 절대로 유지되어야 하는 클래스 인스턴스가 필요하면 |
1091 | `GetxService`를 사용하세요. | 1091 | `GetxService`를 사용하세요. |
1092 | 1092 | ||
1093 | +### 테스트 | ||
1094 | + | ||
1095 | +당신은 당신의 컨트롤러들을 생성주기를 포함하여 다른 어떤 클래스처럼 테스트할 수 있습니다 : | ||
1096 | + | ||
1097 | +```dart | ||
1098 | +class Controller extends GetxController { | ||
1099 | + @override | ||
1100 | + void onInit() { | ||
1101 | + super.onInit(); | ||
1102 | + //Change value to name2 | ||
1103 | + name.value = 'name2'; | ||
1104 | + } | ||
1105 | + | ||
1106 | + @override | ||
1107 | + void onClose() { | ||
1108 | + name.value = ''; | ||
1109 | + super.onClose(); | ||
1110 | + } | ||
1111 | + | ||
1112 | + final name = 'name1'.obs; | ||
1113 | + | ||
1114 | + void changeName() => name.value = 'name3'; | ||
1115 | +} | ||
1116 | + | ||
1117 | +void main() { | ||
1118 | + test(''' | ||
1119 | +Test the state of the reactive variable "name" across all of its lifecycles''', | ||
1120 | + () { | ||
1121 | + /// 당신은 생성주기를 제외하고 컨트롤러를 테스트할 수 있습니다, | ||
1122 | + /// 그러나 당신이 사용하지 않는다면 추천되지 않습니다 | ||
1123 | + /// GetX 종속성 주입 | ||
1124 | + final controller = Controller(); | ||
1125 | + expect(controller.name.value, 'name1'); | ||
1126 | + | ||
1127 | + /// 당신이 그것을 사용한다면, 당신은 모든 것을 테스트할 수 있습니다, | ||
1128 | + /// 각각의 생성주기 이후 어플리케이션의 상태를 포함하여. | ||
1129 | + Get.put(controller); // onInit was called | ||
1130 | + expect(controller.name.value, 'name2'); | ||
1131 | + | ||
1132 | + /// 당신의 함수를 테스트하세요 | ||
1133 | + controller.changeName(); | ||
1134 | + expect(controller.name.value, 'name3'); | ||
1135 | + | ||
1136 | + /// onClose 호출됨 | ||
1137 | + Get.delete<Controller>(); | ||
1138 | + | ||
1139 | + expect(controller.name.value, ''); | ||
1140 | + }); | ||
1141 | +} | ||
1142 | +``` | ||
1143 | + | ||
1144 | +#### 팁들 | ||
1145 | + | ||
1146 | +##### Mockito 또는 mocktail | ||
1147 | +당신이 당신의 GetxController/GetxService를 모킹하려고 한다면, 당신은 GetxController를 extend 하고, Mock과 mixin 하라, 그렇게 되면 | ||
1148 | + | ||
1149 | +```dart | ||
1150 | +class NotificationServiceMock extends GetxService with Mock implements NotificationService {} | ||
1151 | +``` | ||
1152 | + | ||
1153 | +##### Get.reset() 사용하기 | ||
1154 | +당신이 위젯 또는 테스트 그룹을 테스트하고 있다면, 당신의 테스트의 마지막 또는 해제 때 당신의 이전 테스트에서 모든 설정을 리셋하기 위해 Get.rest을 사용하십시오 | ||
1155 | + | ||
1156 | +##### Get.testMode | ||
1157 | +당신이 당신의 컨트롤러에서 당신의 네비게이션을 사용하고 있다면, 당신의 메인의 시작에 `Get.testMode = true` 를 사용하십시오. | ||
1158 | + | ||
1159 | + | ||
1093 | # 2.0의 주요 변경점 | 1160 | # 2.0의 주요 변경점 |
1094 | 1161 | ||
1095 | 1- Rx 타입들: | 1162 | 1- Rx 타입들: |
-
Please register or login to post a comment