Stream に流れる値の検証
Stream に流れる値を検証したいとき
とりあえず以下のような class があったとして、body の値を確認したいとします。
class ProfileViewModel {
final StreamController<String> _body = StreamController.broadcast();
Stream<String> get body => _body.stream;
void onBodyEdited(String body) {
_body.add(body);
}
}RxDart の Subject を使うような場合でも基本的には同じ方法を取ることが出来ます。
いくつか方法があります。
Recipe
expectLater
test('test', () {
final viewModel = ProfileViewModel();
expectLater(viewModel.body, emits('body'));
viewModel.onBodyEdited('body');
});複数の値が add される場合には emitsInOrder, emitsInAnyOrder が使用できます。
expectAsync
複数回 add される場合は count を指定することが出来ます。
もちろん Completer などを使用して expectLater などを使わずに自分で書くことも出来ます。
Result
最終更新
役に立ちましたか?