Files
kitchen/test/integration/api_integration_test.dart
Developer 5e979d7115 refactor: 将项目名称从mom_kitchen改为cute_kitchen
更新项目名称及相关引用,包括README、iOS/macOS/Linux配置、文档和代码中的包引用。同时更新版本号至1.3.5并清理无用的HarmonyOS配置文件。

- 修改所有代码中的包引用路径
- 更新各平台配置文件和安装脚本
- 清理HarmonyOS相关无用文件
- 更新应用版本号至1.3.5
- 修正文档中的项目名称引用
2026-04-24 05:05:10 +08:00

90 lines
2.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 创建时间: 2026-04-09
// 更新时间: 2026-04-09
// 名称: API集成测试
// 作用: 测试关键API接口的集成
// 上次更新内容: 初始创建
import 'package:flutter_test/flutter_test.dart';
import 'package:cute_kitchen/src/repositories/action_repository.dart';
import 'package:cute_kitchen/src/repositories/preference_repository.dart';
import 'package:cute_kitchen/src/services/api/api_service.dart';
import 'package:cute_kitchen/src/services/api/api_exception.dart';
void main() {
group('API 集成测试', () {
late ApiService apiService;
late ActionRepository actionRepository;
late PreferenceRepository preferenceRepository;
setUp(() {
apiService = ApiService();
actionRepository = ActionRepository();
preferenceRepository = PreferenceRepository();
});
test('ApiService 初始化测试', () {
expect(apiService, isNotNull);
});
test('ApiException 类型测试', () {
final exception = ApiException(
type: ApiExceptionType.rateLimited,
message: 'Rate limited',
statusCode: 429,
);
expect(exception.isRateLimited, isTrue);
expect(exception.statusCode, 429);
});
test('ActionRepository 初始化测试', () {
expect(actionRepository, isNotNull);
});
test('PreferenceRepository 初始化测试', () {
expect(preferenceRepository, isNotNull);
});
// 注意这些测试需要真实的API连接在CI环境中可能需要mock
// 这里只测试初始化和基本逻辑,不进行实际网络请求
});
group('响应格式适配器测试', () {
test('extractList 测试', () {
final data1 = {
'list': [1, 2, 3],
};
final data2 = {
'items': [4, 5, 6],
};
final data3 = {
'candidates': [7, 8, 9],
};
final data4 = {
'recipe_view': [10, 11, 12],
};
// 由于ResponseAdapter在另一个文件这里只测试数据结构
expect(data1['list'], isNotNull);
expect(data2['items'], isNotNull);
expect(data3['candidates'], isNotNull);
expect(data4['recipe_view'], isNotNull);
});
test('extractItem 测试', () {
final data1 = {
'item': {'id': 1},
};
final data2 = {
'recipe': {'id': 2},
};
final data3 = {
'best_match': {'id': 3},
};
expect(data1['item'], isNotNull);
expect(data2['recipe'], isNotNull);
expect(data3['best_match'], isNotNull);
});
});
}