Flutter - Firestore 테스트
소개
오늘은 Flutter 환경에서 Firestore를 테스트하는 방법을 공유하고자 합니다. 이미 시도했다면 Firestore 연결이 테스트 모드에서 작동하지 않는다는 것을 알고 있을 것입니다. 따라서 Firestore 인스턴스를 조롱해야 합니다. Flutter의 경우 fake_cloud_firestore에 언급된 FlutterFire을 사용할 수 있습니다.
이번 포스트에서는 Firestore와 상호작용하는 리포지토리 단위 테스트를 작성하는 방법에 대해 설명하겠습니다.
Firestore를 테스트하는 방법을 배우고 싶다면 실제 Firebase 프로젝트가 필요하지 않습니다.
설정
먼저 테스트 프로젝트를 생성합니다.
flutter create test_fake_cloud_firestore
둘째, 아래 패키지를 설치해야 합니다.
flutter pub add cloud_firestore
flutter pub add fake_cloud_firestore
cloud_firestore
→ fake_cloud_firestore
→ 모의 Firestore 필요Firestore를 사용하여 TestRepository 작성
이제
lib
디렉토리 아래에 test_repository.dart
를 생성합니다.cd test_fake_cloud_firestore
touch ./lib/test_repository.dart
그런 다음 Firestore와 상호 작용하는 방법이 있는
TestRepository
클래스로 위 파일을 채웁니다. 테스트용이므로 실제 Firebase 프로젝트가 필요하지 않습니다. collection 또는 doc의 경로는 테스트 파일에서 사용되므로 원하는 경로를 구성하고 나중에 해당 경로를 사용하십시오.아래는 제가 테스트한 클래스입니다.
import 'package:cloud_firestore/cloud_firestore.dart';
class TestRepository {
final FirebaseFirestore firestore;
TestRepository({required this.firestore});
late final countDoc = firestore.doc('test/doc_12345');
Future<int?> fetch() async {
final snapshot = await countDoc.get();
return snapshot.data()?['count'];
}
}
생성자를 통해 Firestore 인스턴스를 넘겨주었다는 점에 유의하십시오. 종속성(이 경우 Firestore 인스턴스)을 주입하면 모의 인스턴스로 테스트하기 쉬운 저장소를 갖게 됩니다.
test_repository_test.dart 생성
그런 다음
_test
디렉터리 아래에 이름이 test
로 끝나는 테스트 파일을 만들어야 합니다.touch ./test/test_repository_test.dart
테스트 파일에서
void main()
명령을 실행할 때 실행할 flutter test
함수를 선언합니다.void main() {}
FakeFirestore를 사용하여 테스트 콘텐츠 작성
이제 메인 함수를 테스트 코드로 채웁니다.
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fake_cloud_firestore/fake_cloud_firestore.dart';
import 'package:test_fake_cloud_firestore/test_repository.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('Test fake_cloud_firestore', () {
// 1
final firestore = FakeFirebaseFirestore();
late TestRepository testRepository;
setUp(
() {
// 2
testRepository = TestRepository(firestore: firestore);
// 3
setDummyFirestore(firestore);
},
);
test('Test fetch data', () async {
// 4
final result = await testRepository.fetch();
expect(result, 2);
});
});
}
setDummyFirestore(FirebaseFirestore firestore) {
firestore.collection('test').doc('doc_12345').set({
'count': 4,
});
}
flutter_test
패키지를 사용하여 테스트를 쉽게 실행하십시오. ( group
, setUp
, test
, expect
) FakeFirebaseFirestore
를 초기화합니다. setUp
에서 가짜 Firestore 인스턴스로 초기화testRepository
합니다. result
변수에 올바른 값이 있는지 확인합니다. 마지막으로 프로젝트 루트 디렉터리에서 아래 명령어로 테스트를 실행합니다.
flutter test
이 테스트는 실패하고 다른 값(2 및 4)을 기록해야 합니다.
즉, 이제 모의 인스턴스로 Firebase Firestore 연결 로직을 안전하게 테스트할 수 있습니다.
결론
Firebase와 Flutter는 종종 함께 사용됩니다. 이 기사가 테스트 실습에 도움이 되었기를 바랍니다.
건배!
Reference
이 문제에 관하여(Flutter - Firestore 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/swimmingkiim/flutter-test-firestore-1d7f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)