为什么:红线第 8 条门禁立即生效,要求 Flutter 测试命名合规;此前 155 条用例名是英文自然语言 或中文描述,合规数 0/155,属存量欠账,按"先补齐再上新功能"在本批处理。 - 25 个测试文件、155 条用例改名,按「文件 + 旧名」精确定位,每条断言命中恰好 1 次才替换 - 只改名字字面量:改动行 155 删 + 155 增,无一行不含字符串字面量(断言与用例体零改动) - 门禁:dart analyze lib test = No issues found;flutter test = 155 全过
35 lines
1.2 KiB
Dart
35 lines
1.2 KiB
Dart
// Author: fruit.com.cn
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:nontonki/core/data/remote/api_client.dart';
|
|
import 'package:nontonki/core/data/remote/auth_api.dart';
|
|
|
|
/// 联调测试:直连本机客户端接口服务(8081)验证 **POST + JSON body + 错误码映射**。
|
|
///
|
|
/// 特意用"不存在的邮箱"登录:既能走完整的 POST 链路,又不会在库里留下测试数据。
|
|
/// 服务没启动时自动跳过,不影响日常 `flutter test`。
|
|
void main() {
|
|
final client = ApiClient(baseUrl: 'http://127.0.0.1:8081');
|
|
final api = AuthApi(client);
|
|
|
|
tearDownAll(client.close);
|
|
|
|
test('should_surface_business_error_when_sign_in_uses_unknown_email', () async {
|
|
try {
|
|
await api.login(
|
|
email: 'no-such-user-for-dio-check@example.com',
|
|
password: 'abcd1234',
|
|
deviceId: 'dio-check-device',
|
|
);
|
|
fail('不存在的邮箱不应该登录成功');
|
|
} on ApiException catch (error) {
|
|
// 关键点:错误码来自响应体(不是 HTTP 状态码),说明统一解包生效
|
|
expect(error.code, isNot(0));
|
|
expect(error.message, isNotEmpty);
|
|
} catch (_) {
|
|
markTestSkipped('客户端接口服务未启动,已跳过联调测试');
|
|
}
|
|
});
|
|
}
|