📜  你在哪里保存测试数据在 api (1)

📅  最后修改于: 2023-12-03 15:22:07.089000             🧑  作者: Mango

你在哪里保存测试数据在 API

在 API 开发中,测试数据的管理是非常重要的一部分,因为它会直接影响到测试结果的准确性和测试效率的高低。下面来介绍几种常见的测试数据保存方法。

1. 存储到数据库中

将测试数据存储到数据库中是一种比较常见的方式,这种方式可以保证测试数据的可持久化和易于修改。一般来讲,我们可以用 ORM 框架来操作数据库,常用的 ORM 框架有 Sequelize 和 TypeORM。

// Sequelize 的操作示例
const { Sequelize, Model } = require('sequelize');
const sequelize = new Sequelize('mysql://user:pass@localhost:3306/mydb');

class TestData extends Model {}
TestData.init({
  name: Sequelize.STRING,
  email: Sequelize.STRING
}, { sequelize, modelName: 'test_data' });

async function getTestData(name) {
  const data = await TestData.findOne({
    where: {
      name: name
    }
  });
  return data;
}
// TypeORM 的操作示例
import { Entity, Column, PrimaryGeneratedColumn, getManager } from 'typeorm';

@Entity()
export class TestData {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  email: string;
}

async function getTestData(name: string): Promise<TestData> {
  const data = await getManager().findOne(TestData, { name: name });
  return data;
}
2. 存储到 Mock 服务中

Mock 服务是一种能够快速生成测试数据的工具,常用的 Mock 服务有 MockServer 和 JSON Server。利用 Mock 服务能够快速地生成多种数据类型,如文本、数字、日期、布尔值等等。

// MockServer 的示例
const ms = require('mockserver-client');

async function getTestData(name) {
  await ms("localhost", 1080).mockAnyResponse({
    "name": name,
    "email": "test@example.com"
  });
  return await fetch("http://localhost:1080/api/data");
}
// JSON Server 的示例
const jsonServer = require('json-server');
const server = jsonServer.create();
const router = jsonServer.router('db.json');
const middlewares = jsonServer.defaults();

server.use(middlewares);
server.use(router);

async function getTestData(name) {
  return await fetch(`http://localhost:3000/data?name=${name}`);
}
3. 存储到文件中

将测试数据存储到文件中也是一种常见的方式,这种方式可以方便地进行版本管理和协作开发。常见的文件格式有 JSON、YAML、XML 等等。

// JSON 格式的测试数据文件示例
[
  {
    "name": "Alice",
    "email": "alice@example.com"
  },
  {
    "name": "Bob",
    "email": "bob@example.com"
  }
]
# YAML 格式的测试数据文件示例
- name: Alice
  email: alice@example.com
- name: Bob
  email: bob@example.com

以上就是常见的测试数据保存方法,开发者可以根据具体的需求选择合适的方式来管理测试数据,提高测试效率和准确性。