如何区分多个jasmine.Ajax.stubRequest调用

时间:2016-07-07 05:39:00

标签: javascript ajax knockout.js jasmine

我有一组具有敲门验证的测试,在调用我想测试的api之前会调用电子邮件检查器。

jasmine.Ajax.stubRequest('/api/register/').andReturn({
    'status': 201,
    'contentType': 'application/json',
    'responseText': '{"result":"ok"}',
});
jasmine.Ajax.stubRequest('/api/email-ok/?email=test%40example.com').andReturn({
    'status': 200,
    'contentType': 'application/json',
    'responseText': 'true',
});
var u = new User();
u.registrationEmail('test@example.com');
var d = u.register('/api/register/');
d.then(() => {
    var request = jasmine.Ajax.requests.mostRecent();
....

这里的mostRecent()可能是email-ok api而不是我要检查的寄存器api。如何区分使用jasmine.Ajax的两个模拟调用,以便我可以检查结果?

1 个答案:

答案 0 :(得分:0)

我编写了一个枚举请求的函数,并通过URL选择一个。基于这个要点:(Youtube video on developing minecraft plugins)如下:

function getRequestForUrl(url) {

    for (var i = 0; i < jasmine.Ajax.requests.count(); i++) {
        var req = jasmine.Ajax.requests.at(i);
        if(url == req.url){
            return req;
        }
    }
    return null;
}