【问题标题】:How to get a Sinon.js fake server call the success function?如何让 Sinon.js 假服务器调用成功函数?
【发布时间】:2015-05-19 10:13:33
【问题描述】:

我正在使用 Jasmine 和 Sinon 来测试一个 ajax 调用。测试如下:

describe("function initialize", function(){

    var server;

    beforeEach(function(){
        server = sinon.fakeServer.create();
    });

    afterEach(function() {
        server.restore();
    });

    it ("should make an ajax call successfully", function(){
        server.respondWith(session.apipath + "/login/refreshToken/",
            [200, { 'Content-Type': 'application/json' },
            '{user:"asdf",loginToken:"bla"}']);
        session.initialize();
        server.respond();
        expect(localStorage.getItem("loginToken")).toBe("bla");
    });
});

我想让它调用成功函数。

$.ajax(this.apipath + "/login/refreshToken/", {
    success: function (response) {
        alert("success!!!");
        localStorage.setItem("loginToken", response.loginToken);
    },
    error: function(){
        alert("error!!!");
    }
});

但只调用错误。我做错了什么?

【问题讨论】:

  • 我想通了。我不得不更改一行:` server.respondWith(session.apipath + "/login/refreshToken/",[200, { 'Content-Type': 'application/json' }, JSON.stringify([{user:" asdf",loginToken:"bla"}])]);`

标签: javascript testing jasmine server sinon


【解决方案1】:

你可以试试这个。 (虽然已经晚了,但还是想给大家推荐一下。)

'{user:"asdf",loginToken:"bla"}' -> '{"user":"asdf", "loginToken":"bla"}'

如果您想知道原因,请阅读this

【讨论】:

    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2011-12-15
    • 1970-01-01
    • 2014-06-18
    • 2013-03-21
    相关资源
    最近更新 更多