小编Muh*_*nan的帖子

Flutter - 预期:应按顺序执行以下操作:发出事件 Empty、NumberTriviaError、实际:Empty:这不是 Stream 或 SteamQue

我近 20 天正在学习 Flutter Clean Architecture TDD 课程。我正在编写 Stream (mapEventToState) 的单元测试,这是我的测试代码:

\n
test(\n  'should emit [Error] when the input is invalid',\n      () async {\n    // arrange\n    when(mockInputConverter!.stringToUnsignedInteger(SIGNED_STRINGS))\n        .thenReturn(Left(InvalidInputFailure()));\n    // assert later\n    final expected = [\n      // The initial state is always emitted first\n      NumberTriviaEmpty(),\n      NumberTriviaError(message: INVALID_INPUT_FAILURE_MESSAGE),\n    ];\n    expectLater(bloc!.state, emitsInOrder(expected));\n    // act\n    bloc!.add(GetTriviaForConcreteNumber(tNumberString));\n  },\n);\n
Run Code Online (Sandbox Code Playgroud)\n

忘记所有关于(何时)的事情,因为我已经模拟了所有类并简单地返回了一个 Left of Either ,这显然是一个失败,这很好。因此,预期数据的问题出现了,我只是创建了预期列表,并将其按顺序“emitsInOrder”传递到“expectLater”方法中。

\n

我的 Stream 实现代码在这里:

\n
@override\nStream<NumberTriviaState> mapEventToState(NumberTriviaEvent event,) async* {\nif (event is GetTriviaForConcreteNumber) {\n  final inputEither =\n  inputConverter.stringToUnsignedInteger(event.numberString);\n\n  yield* inputEither!.fold(\n        (failure) …
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
1
解决办法
2058
查看次数

标签 统计

dart ×1

flutter ×1