首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasmine request.respondWith不起作用

Jasmine request.respondWith不起作用
EN

Stack Overflow用户
提问于 2014-12-16 17:36:20
回答 3查看 2.7K关注 0票数 3

我使用Jasmin2.0.4和Jasmin-Ajax2.99.0来测试一个调用web服务的模块。守则如下:

代码语言:javascript
复制
    define(['models/data-service', 'models/admin', 'models/contest', 'models/participant', 'ContestResponse'],
    function(dataService, admin, Contest, Participant, ContestResponse){
    "use strict";

        describe("Data Service Tests", function(){
            var onSuccess, onFailure, request;

            describe("on new contests loaded", function(){
                beforeEach(function(){
                    jasmine.Ajax.install();
                });

                it("calls onSuccess with an array of Contests", function(){
                    onSuccess = jasmine.createSpy('onSuccess');
                    onFailure = jasmine.createSpy('onFailure');
                    dataService.getContests()
                        .done(onSuccess)
                        .fail(onFailure);

                    request = jasmine.Ajax.requests.mostRecent();
                    expect(request.url).toBe('/api/contest');
                    expect(request.method).toBe('GET');
                    request.respondWith(ContestResponse.getResponse().contest.success);
                    expect(onSuccess).toHaveBeenCalled();
                    var successArgs = onSuccess.calls.mostRecent().args[0];
                    expect(successArgs.length).toEqual(4);
                });
            });
        });
});

一切都正常工作,直到到达我试图调用请求的respondWith方法的行为止。尽管我可以看到从jasmine.Ajax.requests.mostRecent()返回的对象是FakeXMLHttpRequest类型的,但respondWidth被标记为未定义。有什么想法吗?谢谢

最新消息我已经缩小了范围。看起来模拟-ajax.js文件没有加载。我安装了业力-jasmine节点模块,并将jasmine添加到karma.conf.js的框架数组中,如下所示:

代码语言:javascript
复制
frameworks: ['jasmine-ajax','jasmine', 'requirejs'],

还有什么需要我做的吗?

难怪很少有开发人员使用javascript /RANT运行单元测试。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-23 02:12:48

我也面临着同样的问题,最近的版本似乎没有respondWith方法。

降低jasmine-ajax插件的评级是一个诀窍:

代码语言:javascript
复制
npm install karma-jasmine-ajax@0.1.1

现在我可以看到respondWith工作得很好。

票数 1
EN

Stack Overflow用户

发布于 2015-04-07 21:36:12

这似乎是jasmine库中的一个过渡性问题。升级到最新版本(撰写本文时为3.1.0)将解决您的问题。

代码语言:javascript
复制
npm install jasmine-ajax
bower install jasmine-ajax

github上的jasmine

票数 1
EN

Stack Overflow用户

发布于 2015-04-28 20:37:43

如果由于冲突而无法更改jasmine-ajax版本(例如:使用Jasminin1.3或其他依赖于不同版本的jasmine-ajax的内容),则可以使用:jasmine-ajax而不是request.respondWith

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27510586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档