Flutter packages Location 테스트
개시하다
Flutter를 이용한 애플리케이션 개발이기 때문에 Google Map 설치는 UI 섹션에 대한 설치를 자주 하는데 문서를 찾을 수 있으면 되지만 테스트에 대해서는 전혀 없습니다.이번에도 Google Map을 설치하고 Location을 사용했지만, 조사를 많이 해서 드디어 테스트를 할 수 있게 돼서 정리했습니다.
젠 첫 투고!!
하고 싶은 일
생성 테스트
그래서 위치 모형을 만든다.모듈은 플랫폼 인터페이스를 이용하여 제작한다.plugin_platform_interface
final location = Location();
final platform = MockLocationPlatform();
LocationPlatform.instance = platform;
class MockLocationPlatform extends Mock with MockPlatformInterfaceMixin implements LocationPlatform {
@override
Future<LocationData> getLocation() async {
return LocationData.fromMap(<String, double>{
'latitude': 34.6874598748376,
'longitude': 135.52605115003277,
});
}
(테스트용 화면을 만드는 부분을 생략할 수 있도록 허락해 주세요)
화면을 실행하기 전에 getLocation() 을 실행하십시오.
testWidgets('Google Map Test', (tester) async {
await tester.runAsync(() async {
await location.getLocation(); // こっちが先
await _pump(tester); // 画面があと
expect(find.byType(GoogleMap), findsOneWidget);
});
});
모든 코드
sample.dart
import 'package:flutter_test/flutter_test.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart';
import 'package:location_platform_interface/location_platform_interface.dart';
import 'package:mockito/mockito.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
final location = Location();
final platform = MockLocationPlatform();
LocationPlatform.instance = platform;
tearDown(resetMockitoState);
group('getLocation', () {
test('get location', () async {
final receivedLocation = await location.getLocation();
expect(receivedLocation.latitude, 34.6874598748376);
expect(receivedLocation.longitude, 135.52605115003277);
});
});
group('Sample Screen', () {
testWidgets('Google Map Test', (tester) async {
await tester.runAsync(() async {
await location.getLocation();
await _pump(tester);
expect(find.byType(GoogleMap), findsOneWidget);
});
});
});
}
}
Future<void> _pump(WidgetTester tester) async {
// テスト用の画面を作成
}
class MockLocationPlatform extends Mock with MockPlatformInterfaceMixin implements LocationPlatform {
Future<LocationData> getLocation() async {
return LocationData.fromMap(<String, double>{
'latitude': 34.6874598748376,
'longitude': 135.52605115003277,
});
}
}
총결산
이번에 테스트를 하면서 조사를 많이 했는데 Stack Overflow(해외판)에 location의 mock을 만들었어요!누군가 이렇게 썼기 때문에 나는 그 사람이 만든 모형을 참고해서 정리했다.미안합니다. 그 페이지를 몰라서 링크를 붙이지 못했습니다.
매번 시험을 볼 때마다 여러 가지 좌절이 있었지만 꾸준히 조사한 후에 방법을 강구해서 썼습니다. 최근에 저는 약간 여러 가지 시험을 쓸 수 있게 되었습니다.(금방 까먹었다)
앞으로 Fluter의 주목을 받는 것도 좋을 것 같아요. 조금만 도와주면 좋겠어요!
하면, 만약, 만약...뭐가 있으면 알려주세요!
Reference
이 문제에 관하여(Flutter packages Location 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/pechefamille/articles/75a63b8ac621ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)