最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

每次测试前都要重置数据库

IT培训 admin 6浏览 0评论

每次测试前都要重置数据库

我正在为一个简单的应用程序使用节点并进行超级测试。我为本地测试数据库安装了SQlite3。我做了一个简单的测试,将超级插入数据库。我想在每次运行测试时重置数据库。我正在寻找文档,但似乎找不到它。我想在这里问一下,因为似乎有人很可能会知道该信息。

const request = require('supertest');
const server = require('../server');

describe('Authentication', function() {

//database reset here

  it('should create a new user /users/registration', function(done) {
    request(server)
      .post('/users/register')
      .send({
        username: 'user-name',
        email: '[email protected]',
        password: '12345'
      })
      .set('Accept', 'application/json')
      .expect(201, done);
  });
});
回答如下:

所以最好的方法是在Api的路由功能中包含一些逻辑

Receive an API request
Check if ['X-MOCK-HEADER'] exists
If it does then route to the mock version of the endpoint

因此您的用于创建用户的模拟将始终返回201 OK-您的模拟端点将执行以下操作:

const routes = {
   CREATE_USER_OK:() => { return {....} } // make sure these return proper http responses
   CREATE_USER_BAD_REQUEST: () { return {...} }
}

 return routes[HEADER_VALUE]()

原因是在这种情况下您正在测试路由而不是数据库类,所以您只想返回静态数据,如果您想测试其他内容,只需将X-MOCK-HEADER值更改为所需的值并添加返回正确的http响应/代码的模拟路线-我需要知道API代码在后端实现上对您有什么帮助。

如果可能的话,不要弄乱暂存数据库进行测试,因为在以后的过程中,随着它逐渐充满垃圾,您将遭受很多痛苦。

此外,如果您使用的是前端应用程序,则可以快速使用静态数据进行原型制作-如果您有一个前端团队正在等待API端点说要创建登录屏幕,则这特别有用。

每次测试前都要重置数据库

我正在为一个简单的应用程序使用节点并进行超级测试。我为本地测试数据库安装了SQlite3。我做了一个简单的测试,将超级插入数据库。我想在每次运行测试时重置数据库。我正在寻找文档,但似乎找不到它。我想在这里问一下,因为似乎有人很可能会知道该信息。

const request = require('supertest');
const server = require('../server');

describe('Authentication', function() {

//database reset here

  it('should create a new user /users/registration', function(done) {
    request(server)
      .post('/users/register')
      .send({
        username: 'user-name',
        email: '[email protected]',
        password: '12345'
      })
      .set('Accept', 'application/json')
      .expect(201, done);
  });
});
回答如下:

所以最好的方法是在Api的路由功能中包含一些逻辑

Receive an API request
Check if ['X-MOCK-HEADER'] exists
If it does then route to the mock version of the endpoint

因此您的用于创建用户的模拟将始终返回201 OK-您的模拟端点将执行以下操作:

const routes = {
   CREATE_USER_OK:() => { return {....} } // make sure these return proper http responses
   CREATE_USER_BAD_REQUEST: () { return {...} }
}

 return routes[HEADER_VALUE]()

原因是在这种情况下您正在测试路由而不是数据库类,所以您只想返回静态数据,如果您想测试其他内容,只需将X-MOCK-HEADER值更改为所需的值并添加返回正确的http响应/代码的模拟路线-我需要知道API代码在后端实现上对您有什么帮助。

如果可能的话,不要弄乱暂存数据库进行测试,因为在以后的过程中,随着它逐渐充满垃圾,您将遭受很多痛苦。

此外,如果您使用的是前端应用程序,则可以快速使用静态数据进行原型制作-如果您有一个前端团队正在等待API端点说要创建登录屏幕,则这特别有用。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论