🤖

[Flutter] Widgetテストのいろいろ

2022/05/09に公開約1,800字

FlutterのWidget Testを行う上で気づいたことやエラーなどをメモしていきます. 👍

Widgetを探す

ensureVisible

該当Widgetが画面外にあるとき,そのWidgetが表示されるまでスクロールする

該当Widgetが画面外にあるときに表示されるwarning.

Maybe the widget is actually off-screen, or another widget is obscuring it, or the widget cannot receive pointer events.

https://api.flutter.dev/flutter/flutter_test/WidgetController/ensureVisible.html

byKey

特定のKeyを持つWidgetを探す

https://api.flutter.dev/flutter/flutter_test/CommonFinders/byKey.html

textのvalueを取得する

Textのvalueを取得して,その値が正しいかどうか確認したい.

screen_test.dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  testWidgets('expect text.data == "text"', (WidgetTester tester) async {
    await tester.pumpWidget(
      MaterialApp(
        home: Column(
          children: const [
            Text(
              'text',
              key: ValueKey('unit_text'),
            ),
          ],
        ),
      ),
    );
    // ValueKey で探す
    final finder = find.byKey(const ValueKey('unit_text'));
    // 探したWidgetをText Widgetとして取得
    final text = finder.evaluate().single.widget as Text;
    // Text Widgetのdataが'text'と正しいか比較
    expect(text.data, 'text');
  });
}

evaluate method

https://stackoverflow.com/questions/54235752/flutter-how-to-get-text-widget-on-widget-test

GithubTwitterInstagram

GitHubで編集を提案

Discussion

ログインするとコメントできます