Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 行为主体流单元测试,实际数据失败_Flutter_Flutter Test - Fatal编程技术网

Flutter 行为主体流单元测试,实际数据失败

Flutter 行为主体流单元测试,实际数据失败,flutter,flutter-test,Flutter,Flutter Test,你能帮助我理解如何用我的自定义类(TestClass)测试BehaviorSubject吗 测试返回“BehaviorSubject”的实例,而不是“TestClass”的实例。 但是对于原始类型,它工作得很好 完全错误: ERROR: Expected: should emit an event that <Instance of 'TestClass'> Actual: <Instance of 'BehaviorSubject<TestClass>'>

你能帮助我理解如何用我的自定义类(TestClass)测试BehaviorSubject吗

测试返回“BehaviorSubject”的
实例,而不是“TestClass”的
实例。

但是对于原始类型,它工作得很好

完全错误:

ERROR: Expected: should emit an event that <Instance of 'TestClass'>
  Actual: <Instance of 'BehaviorSubject<TestClass>'>
   Which: emitted • Instance of 'TestClass'
错误:应为:应发出
实际:
其中:“TestClass”的实例
集团示例:

class TestDataBloc {
  final testSubject = BehaviorSubject<TestClass>();

  Observable<TestClass> get paymentStream => testSubject.stream;

  createOrder() {
    final TestClass _testData = TestClass(
      id: 100,
      data: "xxx",
    );
    testSubject.sink.add(_testData);
  }

  dispose() async {
    await testSubject.drain();
    testSubject.close();
  }
}
类TestDataBloc{
最终测试主题=行为主题();
Observable get paymentStream=>testSubject.stream;
createOrder(){
最终测试类_testData=TestClass(
id:100,
数据:“xxx”,
);
testSubject.sink.add(_testData);
}
dispose()异步{
等待testSubject.drain();
testSubject.close();
}
}
测试:

test(“\u testData”,()异步{
TestDataBloc_TestDataBloc=TestDataBloc();
最终测试类_testData=TestClass(
id:100,
数据:“xxx”,
);
期待(
_testDataBloc.testSubject.stream,
发射顺序(
[
_测试数据,
],
),
);
_testDataBloc.createOrder();
});

谢谢

请确保为
TestClass

    test('_testData', () async {
      TestDataBloc _testDataBloc = TestDataBloc();

      final TestClass _testData = TestClass(
        id: 100,
        data: "xxx",
      );

      expect(
        _testDataBloc.testSubject.stream,
        emitsInOrder(
          <TestClass>[
            _testData,
          ],
        ),
      );

      _testDataBloc.createOrder();
    });