【问题标题】:What is the equivalent of jest snapshot testing in Flutter?Flutter 中的 jest 快照测试相当于什么?
【发布时间】:2023-03-24 02:45:01
【问题描述】:

使用 Jest,一个 JS 测试库,可以有如下的“快照”:

test('foo', () => {
    expect(42).toMatchSnapshot("my_snapshot");
})

基本上,在第一次运行时,这会将测试值保存到文件中。在以后的运行中,它将传递的值与文件中的值进行比较。因此,如果传递的值与该文件中的值不同,则测试失败。

这非常有用,因为它可以轻松创建测试。

有没有办法使用 Flutter 提供的测试框架来做到这一点?

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    只能用于小部件,使用testWidgets

    testWidgets('golden', (tester) async {
      await tester.pumpWidget(Container(
        color: Colors.red,
      ));
    
      await expectLater(
          find.byType(Container), matchesGoldenFile("red_container.png"));
    });
    

    首先,您必须泵送您要测试的小部件(此处为红色容器)。

    然后您可以将matchesGoldenFileexpectLater 结合使用。这将截取小部件的屏幕截图并将其与之前保存的截图进行比较。

    在第一次运行或想要更新黄金时,您必须将标志传递给flutter test

    flutter test --update-goldens
    

    【讨论】:

    • matchesGoldenFile 是来自颤振测试的函数吗?
    • 是的,它自带Flutter的测试框架
    • 是否有 dart - 不颤动 - 相当于测试字符串等原始数据?
    猜你喜欢
    • 2017-08-13
    • 2018-11-27
    • 2018-12-17
    • 2021-07-07
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多