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);

使用方法

登录/注册

调用可用的signInsignUp方法:

await SjSdkTesting.instance.signIn();
await SjSdkTesting.instance.signUp();

这两个方法都返回一个映射:

{
  "accessToken": "",
  "refreshToken": "",
  "expiresIn": "",
}

用户资料

调用userProfile方法,并提供从signInsignUp方法获取的成员令牌:

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

1 回复

更多关于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
回到顶部