问题标签 [widget-test-flutter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
262 浏览

flutter - 如何在启用阴影的情况下运行 Flutter 小部件测试?

我想用阴影渲染我的一些 Flutter 金色文件。我怎样才能做到这一点?

默认情况下禁用阴影: https ://github.com/flutter/flutter/blob/master/packages/flutter_test/lib/src/binding.dart#L942

0 投票
1 回答
988 浏览

flutter - Flutter 模拟 ChangeNotifierProvider 并设置提供程序值

好的,请耐心等待,因为我刚刚开始学习小部件测试。我有一个 MainAppBar 小部件,它在小部件树中的上方有一个 AuthProvider,如果用户实际上已通过身份验证,则需要执行身份验证检查和后续注销。这是一个愚蠢的场景,但能够测试它对于我的应用程序中的许多其他场景很有用。

我像这样嘲笑 AuthProvider

使用 mockito 并像这样包装小部件

bool是基于简单的isAuthenticated枚举状态检查,所以只要设置状态,就可以测试真假场景等。在我的测试中,我想设置一个状态,测试是否调用了signOutand 。Navigator

setAuthProviderStatussetter 设置状态并进行isAuthenticated基本检查:

AuthProvider 将状态初始化为默认值Uninitialized,因此尽管可以将此检查扩展为考虑 null,但现在应该没问题。在我的 MainAppBar 小部件中,isAuthenticatedbool 以 null 的形式返回并抛出异常Failed assertion: boolean expression must not be null,因为 if 语句需要 bool,而 null 会导致它失败。我的测试中的打印print(mockAuthProvider.isAuthenticated);也是空的。我已经通过实际的 AuthProvider 成功进行了测试,并且没有遇到同样的问题,尽管这显然不适用于测试目的。

如何在模拟 Provider 中设置值,以便它们下面的小部件知道它们?

0 投票
1 回答
492 浏览

flutter - 在 TabBar 小部件 Flutter 上测试 Tabbar 边框

我有一个CustomTabBar返回 TabBarWidget 的类。所以CustomTabBar小部件的基本结构如下:

指示器的位置由变量控制isBottomIndicator

现在我正在尝试为这个小部件编写一个测试用例。到目前为止,我已经尝试过这个测试用例:

我从编译器得到的例外是

我不知道我怎样才能通过我找到的 wigetfind.byType()

以下测试通过了我检查 TabBar 是否存在的地方。

如果您对makeTestableWidgets. 这个函数只是为 TabBar 提供 Material App。

0 投票
0 回答
285 浏览

flutter - 小部件测试用例正在通过,但我收到错误

测试登录文件时出现错误。这些测试用例正在通过,我在测试时得到绿色勾号,但收到此错误消息

我收到此错误:

颤振测试./test/login_test.dart

0 投票
0 回答
78 浏览

flutter - 如何将默认属性与 Flutter 小部件测试相匹配

我正在测试一个自定义进度条小部件

buffered我用默认值初始化参数Duration.zero

但是,当我测试该buffered属性时,测试失败。

这是我的测试:

double默认值是好的,但持续buffered时间默认值失败:

我是否需要做的不仅仅是泵小部件以允许应用默认值?

0 投票
2 回答
587 浏览

flutter - 如何在使用 http.post 时进行小部件测试

我正在尝试对我的项目使用小部件测试,并且测试工作正常,直到达到我在实际页面中使用 http 请求的程度,我认为,忽略该请求

account.body 在使用模拟器期间运行良好时返回空

});

我不确定我是否错过了什么我还是初学者

0 投票
1 回答
183 浏览

android - 如何对访问 Provider.of(context) 的小部件进行 Flutter 测试

我想知道是否有人可以帮助我,我在我的颤振项目上为我的主页编写测试时遇到了麻烦,因为它依赖于提供者。

home_page.dart

主要.dart

home_page_test.dart

}); }

当我运行这个测试时,我收到以下错误,我真的很困惑,需要一些指导。我对 Flutter 相当有经验,但我是为需要外部依赖项的小部件编写小部件测试的新手。如果有人可以提供帮助,那就太好了。

错误:

0 投票
3 回答
786 浏览

flutter - 如何验证小部件是否“离屏”

赏金信息:如果出现以下情况,我会接受您的回答:

  • 不是顺其自然do this instead
  • 代码示例大部分未更改
  • 产生成功的测试,而不仅仅是文档中的一些引用
  • 不需要任何额外的包

[编辑:07/02/21]在不和谐的颤振社区上 关注 Miyoyo#5957@iapicca Convert widget position to global, get width height, add both, and see if the resulting bottom right position is on screen?并使用以下答案作为参考:

给出下面的代码示例(也可以在 dartpad 上运行

我要测试的是小部件是off screen 这里的测试代码到目前为止

和产生的日志

我不确定我的方法是否正确,打印中的时间告诉我

建议我 await tester.pumpAndSettle(Duration(milliseconds: 300)); 不要做我认为的事情

0 投票
1 回答
686 浏览

flutter - BlocBuilder 小部件的 Flutter 小部件测试

我有一个小部件,它使用 bloc 构建器来映射小部件的不同状态。

BodyWidget是在带有 BlocProvider 的 Widget 中创建的。

NewsBloc 被定义为

我正在使用get_it和injectionable 进行依赖注入

现在我正在尝试编写一个简单的小部件测试BodyWidget,但我不太确定如何在测试中注入所有这些依赖项。

我确实在 stackoverflow 中进行了搜索,但找不到适合我的解决方案。

0 投票
2 回答
1215 浏览

flutter - 为什么在分配这样的未来函数时pumpAndSettle超时

在我的州级课程中,我宣布了一个未来:

并像这样分配它initState

FutureBuilder像这样使用它:

这在正常运行应用程序时工作正常,flutter run但是当我尝试使用小部件测试它时flutter test test/widget_test.dart

它失败了:

但是,如果我以这种方式分配未来,则相同的测试将毫无问题地通过:

两种分配未来的方式有什么区别?