简体   繁体   English

如何使Sinon.js假服务器调用成功函数?

[英]How to get a Sinon.js fake server call the success function?

I am using Jasmine and Sinon to test an ajax call. 我正在使用Jasmine和Sinon测试ajax调用。 The test looks like this: 测试如下所示:

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");
    });
});

I want it to call the success function. 我希望它调用成功函数。

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

But only error is called. 但是只调用错误。 What am I doing wrong? 我究竟做错了什么?

You can try this. 你可以试试看 (Although this is late, I still want to suggest you.) (尽管已经晚了,我仍然想向您推荐。)

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

If you want to know why, read this . 如果您想知道为什么,请阅读此内容

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM