【问题标题】:Flutter: How to test a widgets who contains a StreamBuilder?Flutter:如何测试包含 StreamBuilder 的小部件?
【发布时间】:2021-03-02 16:00:54
【问题描述】:

我是 Flutter 的新手,我想将 Widgets 测试添加到我的应用程序中。但是我有一些关于小部件测试的问题和疑问比颤振文档要复杂一些。 事实上,我有一个带有这个身体的 Scaffold 小部件:

body: StreamBuilder<List<UserData>> (
        stream: DatabaseService().searchUser(searchValue),
        builder: (context, snapshot) {
          if (snapshot.hasData && searchValue.length >= 3){
            return ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (context, index) {
                return ListTile(
                  onTap: () {
                    Navigator.pushReplacementNamed(context, '/friends/search/details', arguments: snapshot.data[index]);
                  },
                  title: Text(snapshot.data[index].name),
                );
              }
            );
          }
          return Center();
        },
      )

第一个问题是:

是否需要测试这个 StreamBuilder?

如果是:如何模拟流并测试这些小部件?

【问题讨论】:

    标签: unit-testing flutter testing


    【解决方案1】:

    是否需要测试这个 StreamBuilder?

    这是主观的。通常,如果您认为有任何东西对您的应用程序的功能至关重要,那么最好为它编写一个测试,以确保它始终按预期工作/表现。

    如何模拟流并测试这些小部件?

    网上有大量资源可以实现这一目标。也许看看this

    【讨论】:

    • 谢谢,我看了这个例子,但是构建器是在测试中定义的,我怎样才能得到我的 Scaffold 小部件的构建器?
    • 您可以模仿类似的代码,然后使用expect 验证小部件。
    猜你喜欢
    • 2019-02-25
    • 2021-05-09
    • 2019-10-31
    • 1970-01-01
    • 2020-03-21
    • 2019-12-31
    • 2022-06-24
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多