如何 运行 启用阴影的 Flutter 小部件测试?

How do I run Flutter widget tests with shadows enabled?

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

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

随着 debugDisableShadows flag.

import 'package:flutter_test/flutter_test.dart';

void main() {
  testWidgets('my golden test with shadows enabled', (tester) async {
    // Enable shadows
    debugDisableShadows = false;

    await tester.pumpWidget(MyWidget());
    await expectLater(find.byType(MyWidget), matchesGoldenFile('..'));

    // Set the flag back to normal
    debugDisableShadows = true;
  });
}

请注意,您必须在测试用例中将标志切换回正常状态(而不是 setUp / tearDown)- 否则,它将失败。

发生这种情况是因为 this check 是在 testWidgets() 的主体完成之后立即执行的,但在测试用例被认为完成之前。这也是在执行 tearDown() 之前。