gpt4 book ai didi

javascript - Mocha 运行 rendr 集合 ajax 单元测试

转载 作者:行者123 更新时间:2023-12-03 09:46:49 25 4
gpt4 key购买 nike

我尝试使用rendr(客户端和服务器中的 Backbone )创建一个web应用程序并尝试实现一些单元测试。

有没有办法在 Mocha 中运行集合获取单元测试?我想使用 sinon-chai 来模拟 mocha 中的 ajax 请求。但是当我尝试以这种方式 stub $“ajax” 时会发生错误,

var chai = require("chai");
var rekuire = require("rekuire");
var sinon = require("sinon");
var $ = require("jquery"); //because this is node-jquery, we don't have ajax function.
chai.use(require("sinon-chai"));

require("chai").should();
require("mocha-sinon");

var Books = rekuire("app/collections/books");

describe("Books interaction with REST API", function() {
it("should load using the API", function(){
//TypeError: Cannot stub non-existent own property ajax
this.ajax_stub = this.sinon.stub($, "ajax").yieldsTo("success", [
{
count: 20,
"books": [
{
title: "Google1",
author: ["author1", "author2"]
},
{
title: "Google2",
author: ["author3", "author4"]
}
]
}
]);
this.books = Books.fetch();
this.books.should.have.length(2);
this.ajax_stub.restore();
});
});

我的问题是,当我们在 mocha 中运行单元测试时,有没有办法 stub $.ajax 函数?

最佳答案

对于渲染:

测试存在一些问题。模型/集合获取实际上使用 async.parallel,而不是 $.ajax。

此外,我不建议专门测试 .fetch ,除非您要覆盖它。该函数已经在 Rendr 本身内部进行了测试,因此该测试不会给您带来太多实用性。如果您要覆盖,我建议仅删除 collection.fetch 函数,并使用该 yield 而不是 $

关于javascript - Mocha 运行 rendr 集合 ajax 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com