如何在 bloc 单元测试中模拟连接?
How to mock connectivity in bloc unit-tests?
我正在使用这个 package 并且我在一个 bloc 中有以下连接
Connectivity _connectivity = Connectivity();
StreamSubscription _connectivityStreamSubscription;
ConnectivityBloc() {
_connectivityStreamSubscription = _connectivity.onConnectivityChanged.listen((connectivityResult) {
if (connectivityResult == ConnectivityResult.wifi) {
add(ConnectivityEventConnectEvent());
} else {
add(ConnectivityEventDisconnectEvent());
}
});
}
我正在尝试测试 bloc,但是我正在努力在单元测试中模拟 StreamSubscription。那么我们如何在 bloc_test 中模拟 StreamSubscription?
我想通了,我没有将 Connectivity 的实例传递给 bloc。
ConnectivityBloc(this._connectivity) {
我用 Mockito 模拟了 Connectivity。
class MockConnectivity extends Mock implements Connectivity {}
然后我可以传递带有我想要的 ConnectivityResult 的 Stream
when(mockConnectivity.onConnectivityChanged).thenAnswer(
(_) => Stream<ConnectivityResult>.fromIterable([ConnectivityResult.mobile, ConnectivityResult.wifi]));
我正在使用这个 package 并且我在一个 bloc 中有以下连接
Connectivity _connectivity = Connectivity();
StreamSubscription _connectivityStreamSubscription;
ConnectivityBloc() {
_connectivityStreamSubscription = _connectivity.onConnectivityChanged.listen((connectivityResult) {
if (connectivityResult == ConnectivityResult.wifi) {
add(ConnectivityEventConnectEvent());
} else {
add(ConnectivityEventDisconnectEvent());
}
});
}
我正在尝试测试 bloc,但是我正在努力在单元测试中模拟 StreamSubscription。那么我们如何在 bloc_test 中模拟 StreamSubscription?
我想通了,我没有将 Connectivity 的实例传递给 bloc。
ConnectivityBloc(this._connectivity) {
我用 Mockito 模拟了 Connectivity。
class MockConnectivity extends Mock implements Connectivity {}
然后我可以传递带有我想要的 ConnectivityResult 的 Stream
when(mockConnectivity.onConnectivityChanged).thenAnswer(
(_) => Stream<ConnectivityResult>.fromIterable([ConnectivityResult.mobile, ConnectivityResult.wifi]));