💡
【Flutter】FakeFirestoreを使ったRiverPod+ToDoAppのunitテストをやってみた。
概要
RiverPodでテストコードの書き方がわからなかったのでやってみた。
使用するもの
コード
fake_add_test.dart
void main() async {
group('postのテスト', () {
late final ProviderContainer container;
//FakeFirebaseFirestoreがfirebaseFirestoreProviderの代わりにoverrideされて使われる。
setUp(() {
container = ProviderContainer(overrides: [
firebaseFirestoreProvider.overrideWithValue(FakeFirebaseFirestore()),
]);
});
test('addPostメソッドテスト', () async {
///ここでは引数が必要だが、今回は『テスト』をしているので、自分で作成する。
///その値とFirebaseから取得した値が一緒になることを確認する
const post = Post(
id: '12345',
text: 'こんにちは',
title: 'おはようございます',
);
await container.read(toDoRepositoryProvider).addPost(post);
final posts = await container.read(postStreamProvider.future);
expect(posts.length, equals(1));
expect(posts.first.text, equals('こんにちは'));
expect(posts.first.title, equals('おはようございます'));
print(posts.length);
print(posts.first.text);
print(posts.first.title);
});
});
}
print結果
print(posts.length);→1
print(posts.first.text);→こんにちは
print(posts.first.title);→おはようございます。
Discussion