我对JavaScript很陌生,我制作了一个可以运行的Node模块,但是我想用Mocha和Chai添加一些测试。
我的节点模块返回TVmaze API的结果。该模块称为tvmaze-node,可通过NPM获得。
例如,以下内容将返回http://api.tvmaze.com/search/shows?q=girls
的结果 pullRequest: function(url, donePulledRequest) {
request(url, function(error, response, body){
if(error || response.statusCode === 404 || body.length == 2) {
donePulledRequest(error || 'No results');
}
else {
donePulledRequest(null, JSON.parse(body));
}
});
},
search: function(show, doneShow){
var url = "http://api.tvmaze.com/search/shows?q=" + show;
module.exports.pullRequest(url, doneShow)
},
我想在Chai做的是确保搜索的结果与从网址返回的json匹配。
我有Chai的结构,但无法弄清楚我的生活中的逻辑。出于某种原因,我收到错误:
Uncaught AssertionError:期望[Array(10)]深度相等 '[{“得分”:2.096719,“show”:{...... 上面网址中显示的数组的其余部分
describe('Show Search', function() {
it("Returns all results for a given search", function(done) {
tvmaze.search("Lost", function(error, response) {
if(error){
done(error);
} else {
request('http://api.tvmaze.com/search/shows?q=lost', function(error, resp, body){
expect(response).to.eql(body);
done();
})
}
});
done();
});
});
答案 0 :(得分:1)
根据代码donePulledRequest(null, JSON.parse(body));
,您应该检查测试代码中的值,如下所示。
expect(response).to.eql(JSON.parse(body))