首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json模式的mocha全覆盖测试

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

Stack Overflow用户
提问于 2015-02-20 22:59:18
回答 2查看 2.5K关注 0票数 1

我已经为get请求编写了一个测试,但希望获得此测试的“完整覆盖范围”。基本上,我想使用像JSON Schema这样的东西来验证JSON返回是否符合我的期望。

到目前为止我的代码如下:

代码语言:javascript
复制
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模式进行验证。有什么样例链接吗?有什么意见?代码?

EN

回答 2

Stack Overflow用户

发布于 2016-04-09 02:21:24

您可以尝试使用Chai json-schema plugin。这样我们就可以做出如下断言:

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

有关详细信息,请参阅网站。

票数 2
EN

Stack Overflow用户

发布于 2015-02-21 13:45:42

您说要使用“类似”的json schema来验证返回的JSON,那么Chai断言将非常适合这项任务。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28631959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档