- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jasmine 2.0.4 和 jasmine-ajax 2.99.0 来尝试测试调用 Web 服务的模块。代码如下:
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 被标记为未定义。有任何想法吗?谢谢
[更新]我已经能够缩小范围。看起来 mock-ajax.js 文件没有被加载。我安装了 karma-jasmine-ajax 节点模块,并将 jasmine-ajax 添加到 karma.conf.js 的框架数组中,如下所示:
frameworks: ['jasmine-ajax','jasmine', 'requirejs'],
还有什么我需要做的吗?
[RANT]难怪为什么很少有开发人员使用 javascript 运行单元测试[/RANT]
最佳答案
我遇到了同样的问题,看起来最新版本没有 respondWith
方法。
降级 jasmine-ajax
插件就成功了:
npm install karma-jasmine-ajax@0.1.1
现在我可以看到 respondWith
工作正常。
关于ajax - Jasmine Ajax request.respondWith 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27510586/
在未指定respondWith 的情况下从 Service Worker 中的 fetch 事件处理程序返回是否有效?在那种情况下会发生什么? fetch 事件是否仍以默认方式正确处理? self.a
是否有必要在 respondWith(本身在 fetch 事件中)中使用 waitUntil? respondWith 是否已经waitUntil 收到已解决的 promise ? 对此的一些讨论是
在服务 worker 中,我的获取处理程序如下所示: self.addEventListener('fetch', function (event) { event.respondWith(
我的 serviceworker 有这样的逻辑,当一个获取事件发生时,首先它获取一个包含一些 bool 值(不是 event.request.url)的端点并根据我调用的值检查该值 事件.respon
我正在使用 Jasmine 2.0.4 和 jasmine-ajax 2.99.0 来尝试测试调用 Web 服务的模块。代码如下: define(['models/data-service',
当使用 jasmine-ajax 库测试 JavaScript 代码时,我可以模拟 ajax 响应。特别是,我可以定义将给予特定 ajax 请求的响应。似乎有(至少)两种不同的方法可以做到这一点: 方
服务 worker “获取”不返回响应对象 我正在尝试使用缓存的内容来回答请求。如果缓存没有所需的内容,我将从服务器获取,将响应放入缓存并返回它。 self.addEventListener('fet
我可以在 Android Chrome、macOS Chrome 以及 Safari 和 Windows Chrome 上使用 service Worker 下载网站以供离线使用。当我尝试将网站下载到
如果用户尝试在离线状态下打开未缓存的页面,我的服务工作线程应运行以下方法 unableToResolve(),但页面会显示: Unable to connect Firefox can’t estab
有时当我运行我的服务器时,控制台会给我一个错误: Failed to load ‘http://localhost:3000/browser-sync/socket.io/?EIO=3&transpo
我是一名优秀的程序员,十分优秀!