使用json模式的mocha全覆盖测试

mocha full coverage test using json schema

本文关键字:覆盖测试 mocha json 模式 使用      更新时间:2024-02-06

我已经为get请求编写了一个测试,但希望获得该测试的"完全覆盖"。基本上,我想使用类似于JSONSchema的东西来验证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模式进行验证。有样品链接吗?议论密码

您可以尝试使用Chai-json模式插件。让我们做出如下断言:

expect(goodApple).to.be.jsonSchema(fruitSchema); expect(badApple).to.not.be.jsonSchema(fruitSchema)

有关详细信息,请访问网站。

如果你说你想使用"类似"json模式来验证返回的json,那么Chai断言非常适合这项任务。

只需使用属性链测试属性的存在,或者使用instanceof chain检查它们的类型是否正确。如果您确切地知道给定测试用例的api应该返回什么,那么构造一个匹配的对象并将其与深度链进行比较。