gpt4 book ai didi

flutter 测试 : How to check the background color of a widget during integration test

转载 作者:行者123 更新时间:2023-12-04 14:54:04 25 4
gpt4 key购买 nike

我有一个简单的 flutter 应用 available on github具有带有“主题切换”按钮的浅色和深色主题。在主页上,我有一个 Scaffold 小部件,它从主题中获取它的背景颜色属性。有没有办法在使用 driver 进行集成测试期间在切换主题之前和之后检查脚手架的背景颜色?

尝试在切换主题前后检查事件主题,但失败:

 group('Theme Test', () {
final themeButton = find.byValueKey('Button');
final themeProvider = ThemeProvider();

test('Switch between light and dark themes', () async {
expect(themeProvider.mode, ThemeMode.light); //check initial theme
await driver.tap(themeButton);
expect(themeProvider.mode, ThemeMode.dark); //check new theme
});
});

Full integration test here

我的目标是在使用 driver 切换主题之前和之后获取 Scaffold 的背景颜色

最佳答案

您正在测试组中创建 ThemeProvider() 的新实例。驱动程序正在创建您的应用程序,但不会使用您在测试中创建的 ThemeProvider()。

在 Flutter Driver 中与您正在运行的应用程序通信并不容易(您必须使用驱动程序 request_data,但我不建议针对此问题这样做)。

您可能想使用 integration_test 包查看 Flutter 的新集成测试。新的集成测试是 widgetTests 和 flutter 驱动程序测试的组合。更多信息在这里; https://flutter.dev/docs/testing/integration-tests

新的集成测试包将可以与您的应用程序创建的 ThemeProvider() 实例进行通信(如果您允许它访问的话)。然后可以读取 themeProvider.mode 值/检查实际背景颜色是否更改。

关于 flutter 测试 : How to check the background color of a widget during integration test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68477166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com