expressjavascript超级测试需要特定的json字段
我正试图为API端点编写一些单元测试,并决定使用JavaScript Express w/Supertest。我有一些基本的问题,但在检查特定字段的响应时遇到了一些问题。我想解析主体并检查预期字段是否返回并具有正确的值。我在网上看到的大多数东西都使用这种方法,但当我尝试时,它总是通过,即使我输入了我知道JSON中不存在的值。有什么建议吗?以下是我的代码片段:expressjavascript超级测试需要特定的json字段,javascript,express,supertest,Javascript,Express,Supertest,我正试图为API端点编写一些单元测试,并决定使用JavaScript Express w/Supertest。我有一些基本的问题,但在检查特定字段的响应时遇到了一些问题。我想解析主体并检查预期字段是否返回并具有正确的值。我在网上看到的大多数东西都使用这种方法,但当我尝试时,它总是通过,即使我输入了我知道JSON中不存在的值。有什么建议吗?以下是我的代码片段: describe('GET category', function () { it('response w/ only injur
describe('GET category', function () {
it('response w/ only injury returned', function () {
request('endpoint')
.get('path')
.set('header', 'token')
.expect(200)
.then(response => {
console.assert(response.body, "Baseball")
})
})
});
我还尝试将.then改为.expect,结果相同。如果我做response.body.specificFieldinBody,我会得到类似的结果。有什么帮助吗?你可以按自己的方式做-使用
。然后使用语法,但我认为使用Supertest
断言语法会很好
这意味着,使用response.body.should.have.property(“棒球”)
而不是console.assert(response.body,“barball”)
(barball
是您的专用字段)
或者,我的建议是创建一个重用代码:将断言回调函数放到下一个expects
部分
const isIncludeField = function (fieldName) {
return function (res) {
res.body.should.have.property(fieldName);
};
}
describe('GET category', function () {
it('response w/ only injury returned', function () {
request('endpoint')
.get('path')
.set('header', 'token')
.expect(200)
.expect(isIncludeField('Baseball')) //
.end(done); // call done callback
})
});
你可以按照自己的方式来做——使用。然后使用语法,但我认为使用超级测试断言语法会很好
这意味着,使用response.body.should.have.property(“棒球”)
而不是console.assert(response.body,“barball”)
(barball
是您的专用字段)
或者,我的建议是创建一个重用代码:将断言回调函数放到下一个expects
部分
const isIncludeField = function (fieldName) {
return function (res) {
res.body.should.have.property(fieldName);
};
}
describe('GET category', function () {
it('response w/ only injury returned', function () {
request('endpoint')
.get('path')
.set('header', 'token')
.expect(200)
.expect(isIncludeField('Baseball')) //
.end(done); // call done callback
})
});
这与我一直在尝试的内容类似,但是should.*断言给了我一个未定义的“无法读取属性'have'。我的package.json中是否有什么东西或者我缺少的依赖项?`“依赖项”:{“cookie解析器”:“~1.4.4”,“调试”:“~2.6.9”,“express”:“~4.16.1”,“http错误”:“~1.6.3”,“morgan”:~1.9.1“,”帕格“:”2.0.0-beta11“}”,devdependences“{”supertest“^4.0.2“}”,scripts“{”start“:”node./bin/www“,”test“:”mocha'test/apiTest.js“}}”这与我一直在尝试的内容类似,但should.*断言给了我一个无法读取未定义的属性“have”。我的package.json中有什么东西或者我缺少的依赖项吗?`“依赖项”:{“cookie解析器”:“~1.4.4”,“调试”:“~2.6.9”,“快速”:“~4.16.1”,“http错误”:“~1.6.3”,“摩根”:“~1.9.1”,“帕格”:“2.0.0-beta11”},“devdependences”:{“超级测试”:“^4.0.2”},“脚本”:{“开始”:“节点。/bin/www”,“测试”:“mocha test test test/apiTest.js”}`