问题标签 [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 回答
115 浏览

flutter - Flutter Widget Test 在设备上通过但并非没有

我有一个小部件,它显示来自 api 的数据列表,我正在尝试为它的各种状态编写测试,从它的空状态开始。

目前我的测试抽出有问题的小部件,小部件进行了我正在模拟的网络调用,然后它检查是否显示了空状态文本。

当我在使用的设备上运行测试时,此测试通过

但是当我从 IDE(IntelliJ)运行它时失败,失败异常是:

它似乎没有等待给 tester.pump 的 Duration ,我已经尝试将它包装在 tester.runAsync 中并使用 pump 和 solve 等,但我无法让它通过。

欢迎任何想法我不能分享小部件树,但我可以分享测试

0 投票
1 回答
41 浏览

flutter - 如何在 Flutter 中测试 LongPressDraggable

我想在 Flutter 中测试 LongPressDraggable。WidgetTester 提供类似 longPress 的方法或几个拖动方法。但是没有“longPressDrag”或类似的东西。第一个想法是运行长按和拖动。但是在长按之后,小部件测试器没有握住小部件,我无法拖动它。

一种解决方法是使用 timedDrag 并以超慢的速度运行它。这有效,但需要很多时间。

是否有正确的方法来测试小部件?

0 投票
0 回答
68 浏览

flutter - 使用 Mockito 测试 Firebase 用户身份验证 - 出现错误:“Null”类型不是“Stream”类型的子类型'

作为初学者,我需要帮助编写我的第一个小部件测试。我有一个使用 firebase auth 的登录页面,并想测试登录流程。我的第一个测试是确保在没有提供电子邮件和密码的情况下不按下登录按钮。但是我经常出错,我在网上看到并尝试过的每一个建议都对我没有用。我的代码如下。

登录屏幕

测试文件

错误

请帮忙!

0 投票
0 回答
22 浏览

flutter - 当我将消费者用于转换小部件时,我收到一个错误,即找不到提供者

https://iiro.dev/writing-widget-tests-for-navigation-events/

本文介绍如何进行小部件测试以测试目标小部件。

我参考这篇文章在使用提供程序时测试转换目标小部件。结果,当我在过渡源中使用 Cosumer 时,我能够正确显示它。但是,在本文中,转换目标不会重建小部件,因此出现以下错误。

应用代码

测试代码

我尝试的方法是在 await _navigateToDetailsPage(tester); 之后在测试代码的下一行强制重建 DetailPage 小部件;

但是,我得到了同样的错误。

我应该怎么办?

0 投票
1 回答
24 浏览

flutter - 小部件测试 DropdownButton 发现重复的 DropdownMenuItems

我正在尝试为我的应用程序中的 DropdownButton 编写小部件测试。我注意到,在点击按钮将其打开后,调用find.byType(DropdownMenuItem)返回的 DropdownMenuItems 数量是预期数量的两倍。

飞镖板:https ://dartpad.dev/?id=ce3eadff6bd98e6005817c70883451a0

我怀疑这与 Flutter 渲染场景的方式有关。我查看了 Flutter 存储库中下拉列表的小部件测试,但我没有看到我的设置和他们的设置有任何区别,但我也没有看到任何对find.byType(DropdownMenuItem). 有谁知道为什么会这样?还是我的代码有错误?

0 投票
1 回答
34 浏览

flutter - “Null”不是“Stream”类型的子类型' in type cast cubit(Bloc) 颤动

我在flutter中创建了一个cubit测试项目,它工作正常,但是当我用mockito编写一个UI测试用例时,它会抛出以下错误。 'Null' 不是 typecast 中类型 'Stream' 的子类型。如果真实对象正在通过,那么单元测试工作正常。

我的Cubit 我的Cubit = 我的Cubit(); //真实对象与UT正常工作

MyCubit myCubit = MockMyCubit(); //模拟对象不能与 UT 一起正常工作。

以前,当我没有升级我的颤振时,相同的代码正在使用mockito 。我也尝试过使用mockito来模拟Stream ,但它也没有用。 在此处输入图像描述

我的代码如下

颤振依赖

my_cubit.dart

主要.dart

widget_test.dart