gpt4 book ai didi

node.js - 使用 supertest、mocha 和模型进行环回测试

转载 作者:IT老高 更新时间:2023-10-28 23:14:23 27 4
gpt4 key购买 nike

Google groups post on deprecating loopback-testing有一个问题要求提供一个适当的例子来说明如何在没有环回测试的情况下实现测试。该线程谈到使用 supertest反而。

下面是我尝试将 Mocha、超测与模型 (from app.js) 结合起来。当我自己运行文件时,结果非常好。但是,如果我有另一个测试文件(比如 test-teacher.js),那么第一个测试文件(称为 test-student.js)开始以我无法描述的奇怪方式失败。

我是否遗漏了什么,或者不能像我在下面使用它们那样使用模型?

describe('/Student', function () {

var server = require('../server/server')
var loopback = require('loopback')
var supertest = require('supertest')
var request = require('supertest')(server)

var dataSource = server.dataSource('db', {adapter: 'memory'})

var Student = dataSource.define('Student', {
'id': Number,
'points': Number
});

beforeEach(function () {
Student.updateOrCreate({id: 1, points: 5000});
})


it('Post a new student', function (done) {
request.post('/api/Students').send({points: 5000}).expect(200, done)

})


})

最佳答案

根据 jakerella 对上一个答案的反馈,我更改了上面的代码,这样我就不必在代码中从头开始重新定义模型(感谢 jakerella!)

通过下面的代码,我可以使用 npm test 将多个不同模型的所有测试作为一个套件运行,而不会出现任何故障。

因为我只对个别订单感兴趣......听和关闭不是必需的。我怀疑如果我正在测试创建的模型的整体实例,它将成为必需的。

describe('/Student', function () {

var server = require('../server/server')
var request = require('supertest')(server)
var expect = require('expect.js')

var Student

before(function() {
Student = server.models.Student
})

beforeEach(function (done) {
Student.upsert({id: 1, points: 5000}, function() { done() })
})

it('Post a new student', function (done) {
request.post('/api/Students').send({points: 5000}).expect(200, done)
})
})

关于node.js - 使用 supertest、mocha 和模型进行环回测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005001/

27 4 0