gpt4 book ai didi

node.js - 超测+Express不会失败

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:14 25 4
gpt4 key购买 nike

这或多或少是supertest test express middleware的重复。

但一年后,我想我应该开始一个新问题。

var express = require('express');
var request = require('supertest');

var app1 = express();
app1.get('/myapp', function (req, res) {
res.send(200, { name: 'myapp' });
});

request = request(app1);
it('should fail', function () {
request
.get('/hahahahahahahaha')
.expect(123);
});

据我所知,这总是会错误地通过。路径错误并且需要不同的状态代码这一事实并不重要。

而且 - 更一般地说(没有 Express),看起来这总是会过去,而且:

it('should fail', function () {
request('http://thisdoesnotexist.mydomain')
.get()
.expect(200);
});

这也不起作用:

it('should fail', function () {
request('http://thisdoesnotexist.mydomain')
.get()
.expect(200)
.end(function (err, res) {
if (err) {
throw err;
}
});
});

有没有想过为什么会发生这种情况,或者如何实际测试这样的场景?

最佳答案

使用 super 测试,您需要以某种方式终止您的链。

expect 会将完成的回调作为第二个参数,您可以为此使用内置的 mocha 回调。就像这样:

describe('potato', function() {
it('should fail', function(done) {
request
.get('/hahahahahahahaha')
.expect(123, done);
});
});

指定这样的 done 选项将指示 mocha 等待,直到收到您的回复,然后再继续下一个测试。

关于node.js - 超测+Express不会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384533/

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