【问题标题】:How to mock connectivity in bloc unit-tests?如何在 bloc 单元测试中模拟连接性?
【发布时间】:2020-09-05 06:26:50
【问题描述】:

我正在使用这个package,并且我在一个集团中有以下连接

Connectivity _connectivity = Connectivity();
StreamSubscription _connectivityStreamSubscription;

ConnectivityBloc() {
    _connectivityStreamSubscription = _connectivity.onConnectivityChanged.listen((connectivityResult) {
      if (connectivityResult == ConnectivityResult.wifi) {
        add(ConnectivityEventConnectEvent());
      } else {
        add(ConnectivityEventDisconnectEvent());
      }
    });
  }

我正在尝试测试该集团,但是我正在努力在单元测试中模拟 StreamSubscription。那么我们如何在 bloc_test 中模拟 StreamSubscription 呢?

【问题讨论】:

    标签: unit-testing flutter dart flutter-test


    【解决方案1】:

    我发现我没有将 Connectivity 的实例传递给 bloc。

    ConnectivityBloc(this._connectivity) {
    

    我已经用 Mockito 模拟了 Connectivity。

    class MockConnectivity extends Mock implements Connectivity {}
    

    然后我可以通过我想要的 ConnectivityResult 传递流

    when(mockConnectivity.onConnectivityChanged).thenAnswer(
          (_) => Stream<ConnectivityResult>.fromIterable([ConnectivityResult.mobile, ConnectivityResult.wifi]));
    

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 2015-04-08
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      相关资源
      最近更新 更多