我已经为get请求编写了测试,但希望获得此测试的“完全覆盖”。基本上,我想使用类似JSON Schema的东西来验证JSON返回符合我的预期。
到目前为止我的代码如下:
var winston = require('winston');
//var chai = require('chai');
var request = require('supertest-as-promised');
var testUtils = require('./utils/test_utils');
var API_ROOT = 'http://localhost:8000/mywebsite';
var agent = request(API_ROOT);
describe('/my-profile/', function(){
describe('GET', function() {
var url = '/my-profile/';
it('should return valid payload', function(done) {
agent.
get(url).
set('Content-Type', 'application/json').
expect('Content-Type', /json/).
expect(200).
// then(testUtils.logResponse).
then(function(res) {
done();
}).catch(function(err) {
// winston.log(res).then(done);
done(err);
});
});
});
});
如何使用json架构进行验证。任何样本链接?评论?码?
答案 0 :(得分:1)
您可以尝试使用Chai json-schema plugin。这让你做出如下的断言:
expect(goodApple).to.be.jsonSchema(fruitSchema);
expect(badApple).to.not.be.jsonSchema(fruitSchema)
有关详细信息,请访问网站。
答案 1 :(得分:0)
你说你想用某些东西"喜欢" json模式验证返回的JSON,好吧,Chai断言很适合这个任务。
只需使用属性链测试属性是否存在,或使用instanceof链检查它们的类型是否正确。如果您确切知道api应该为给定的测试用例返回什么,请构造一个匹配的对象并将其与深链进行比较。