应用程序本地化的Flutter/ dart 单元测试

nnt7mjpx  于 2023-02-05  发布在  Flutter
关注(0)|答案(1)|浏览(123)

我正在尝试用Dart/Flutter为我的TextField验证编写单元测试。然而,我在这里遇到了一个小问题,因为测试正在工作,但我现在想返回带有本地化的值。
现在我究竟该如何将其实现到测试中呢?

import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class ValidationConstants {
  static String? notEmpty(String? value, BuildContext context) {
    if (value == null || value.isEmpty) {
      return AppLocalizations.of(context)!.text_field_can_not_be_empty;
    }
    return null;
  }
}

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

void main() {

  group('text field validations', () {
    test('no empty text validation', () {
      const emptyText = '';
      const noEmptyText = 'Hello, World!';

      // BuildContext is needed here
      expect(ValidationConstants.notEmpty(emptyText, [...]).runtimeType, String);
      expect(ValidationConstants.notEmpty(noEmptyText, [...]) == null, true);
    });
  });
}
7kqas0il

7kqas0il1#

你可以像下面这样使用flutter_test提供的setUp()方法

void main() {
  S? mockAppLocal;

  setUp(() async {
    mockAppLocal = await S.delegate.load(const Locale('en'));
  });

}

相关问题