gpt4 book ai didi

node.js - Mocha it() 测试仅在没有事先测试的情况下通过

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:52 25 4
gpt4 key购买 nike

我正在测试一个 MEAN 应用程序。每个测试只是确保我得到正确的响应代码。在我的路由器中,它们使用 res.send() 成功返回 json。

仅当第一个测试被注释掉时,此处给出的第二个测试才会通过。如果我注释掉第一个测试,第一个测试会通过,但第二个测试会超时。

这种行为并不是这两个测试所独有的。在“它接受纬度和经度”之前,还有另一个测试。如果我评论出来,接受经纬度作品。如果我把它留在里面,接受纬度和长时间。我需要做什么才能让这些异步测试通过?

我尝试将超时设置为 60 秒之类的值,但这也不起作用。

var assert = require('assert');
var server = require('../bin/www');
var request = require('supertest');

request = request('http://localhost:3000');

describe('POST service request', function(){
this.timeout(5000);
var postRequest = request.post('/requests.json').type('form');

... (other commented out tests) ...

// it('accepts lat and long', function (done){
// postRequest.send({
// service_code: 2000,
// long: 400,
// lat: 3003
// }).expect(200, done);
// });


it('accepts an address id only', function (done){
console.log('22222')
postRequest.send({
service_code: 100,
address_id: 400
}).expect(200, done);
});
});

以下是未注释时的一些记录输出:

Listening on port 3000
POST service request

===REQUEST STARTED===

Trying to save a request.
DB connected.

Saved.

POST /requests.json 200 40.368 ms - 49

✓ accepts lat and long (47ms)

22222
1) accepts an address id only


1 passing (5s)
1 failing

1) POST service request accepts an address id only:
Error: timeout of 5000ms exceeded
at null.<anonymous> (/usr/lib/node_modules/mocha/lib/runnable.js:159:19)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)


npm ERR! Test failed. See above for more details.

npm ERR! not ok code 0

然后超时。

最佳答案

您不能在测试之间重复使用相同的 postRequest,因为发送请求会产生副作用。在每个测试中创建一个新请求:

it('accepts lat and long', function (done){
request.post('/requests.json').type('form').send({
service_code: 2000,
long: 400,
lat: 3003
}).expect(200, done);
});

it('accepts an address id only', function (done){
request.post('/requests.json').type('form').send({
service_code: 100,
address_id: 400
}).expect(200, done);
});

关于node.js - Mocha it() 测试仅在没有事先测试的情况下通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28030409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com