Flutter测试插件sj_sdk_testing的使用
Flutter测试插件sj_sdk_testing的使用
本SDK用于访问诸如登录、注册、积分兑换等服务。
该插件是Flutter对以下平台的实现:
安装与配置
Android
在android/build.gradle
文件中,添加以下行到repositories
块内:
repositories {
...
maven {
url = uri("https://jitpack.io")
}
}
在buildScript
块内设置Kotlin版本为1.9.24
:
ext.kotlin_version = '1.9.24'
在android/app/build.gradle
文件中,将minSdkVersion
设置为26:
minSdkVersion 26
iOS
该包将iOS部署目标设置为11.0。如果您的iOS项目的目标版本低于此版本,可以在ios
模块的Podfile
文件中进行调整:
target.build_configurations.each do |config|
config.build_settings['IOS_DEPLOYMENT_TARGET'] = '11.0'
end
配置
创建SjConfig
对象并提供所需参数:
SjConfig(
clientId: '<提供您的clientId>',
language: <语言> (默认: Language.en),
environment: <环境> (默认: Environment.uat),
);
所有可用的语言:
Language.vn
Language.en
所有支持的环境:
Environment.dev
Environment.stg
Environment.uat /// (默认)
Environment.prod
初始化插件时提供创建的配置对象:
await SjSdkTesting.init(config);
使用方法
登录/注册
调用可用的signIn
和signUp
方法:
await SjSdkTesting.instance.signIn();
await SjSdkTesting.instance.signUp();
这两个方法都返回一个映射:
{
"accessToken": "",
"refreshToken": "",
"expiresIn": "",
}
用户资料
调用userProfile
方法,并提供从signIn
或signUp
方法获取的成员令牌:
await SjSdkTesting.instance.userProfile(token);
该方法返回包含用户资料的映射:
{
"fullName": "",
"userName": "",
"phoneNumber": "",
...
}
积分兑换
调用pointExchange
方法,并提供您的电话号码和会员代码:
await SjSdkTesting.instance.pointExchange(phoneNumber, memberCode);
航班兑换
调用flightRedemption
方法,并提供您的令牌:
await SjSdkTesting.instance.flightRedemption(token);
示例代码
以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:sj_sdk_testing/model/auth_model.dart';
import 'package:sj_sdk_testing/model/sj_config.dart';
import 'package:sj_sdk_testing/sj_sdk_testing.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SjSdkTesting.init(config: SjConfig(clientId: '', environment: Environment.stg));
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: SecondScreen(),
);
}
}
class SecondScreen extends StatefulWidget {
const SecondScreen({super.key});
[@override](/user/override)
State<SecondScreen> createState() => _SecondScreenState();
}
class _SecondScreenState extends State<SecondScreen> {
AuthModel? authModel;
Map<String, dynamic>? user;
[@override](/user/override)
void initState() {
initPlatformState();
super.initState();
}
Future<void> initPlatformState() async {
AuthModel? model;
Map<String, dynamic>? user;
try {
model = await SjSdkTesting.instance.signIn();
user = await SjSdkTesting.instance.userProfile(model.accessToken);
} on PlatformException catch (e) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
showDialog(context: context, builder: (context) {
return AlertDialog(
content: Text(e.toString()),
);
},);
});
//忽略异常
}
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
showDialog(context: context, builder: (context) {
return AlertDialog(
content: Text(user.toString()),
);
},);
});
if (!mounted) return;
setState(() {
authModel = model;
user = user;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text(user?["fullName"] ?? "Nope"),
),
);
}
}
更多关于Flutter测试插件sj_sdk_testing的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter测试插件sj_sdk_testing的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,sj_sdk_testing
是一个测试插件,用于帮助开发者模拟和测试与 SDK 相关的功能。以下是如何使用 sj_sdk_testing
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 sj_sdk_testing
插件的依赖:
dependencies:
flutter:
sdk: flutter
sj_sdk_testing: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在你的 Dart 文件中导入 sj_sdk_testing
插件:
import 'package:sj_sdk_testing/sj_sdk_testing.dart';
3. 初始化插件
在测试之前,你需要初始化 sj_sdk_testing
插件。通常可以在 setUp
方法中进行初始化:
void main() {
setUp(() {
SjSdkTesting.initialize();
});
test('Test SDK Functionality', () {
// 这里是你的测试代码
});
}
4. 编写测试用例
使用 sj_sdk_testing
插件,你可以模拟 SDK 的行为并进行测试。以下是一个简单的测试用例示例:
void main() {
setUp(() {
SjSdkTesting.initialize();
});
test('Test SDK Functionality', () async {
// 模拟 SDK 的某个方法
SjSdkTesting.mockMethod('getUserInfo', (params) {
return {'name': 'John Doe', 'age': 30};
});
// 调用 SDK 方法
var userInfo = await SjSdkTesting.callMethod('getUserInfo');
// 验证结果
expect(userInfo['name'], 'John Doe');
expect(userInfo['age'], 30);
});
}
5. 运行测试
使用以下命令运行测试:
flutter test