草庐IT

javascript - 如何使用 Jasmine 和 Node 从命令行测试 jQuery 插件?

我有正在测试的jQuery插件。我发现了这个问题:HowtorunJasminetestsonNode.jsfromcommandline?但是当我运行时:node_modules/jasmine-node/bin/jasmine-node--verbose--junitreport--noColorspec我收到$未定义的错误。如何包含jQuery?(现在我只测试不与dom交互的实用程序)。 最佳答案 您首先需要创建一个DOM,jQuery可以在其上执行操作。您应该将其设置为全局变量,因为您可能正在访问窗口元素上的jQuery(或

javascript - Jasmine spy 期望用 "Object(...)"调用

我正在完成从Jasmine1.3到2.0的迁移。到目前为止,我已经重构了大部分代码以符合2.0的更新语法。然而,某种测试仍然失败。简而言之,我的测试是这样的:varobj=newCustomCriteria();spyOn(my,"function");my.function(obj);expect(my.function).toHaveBeenCalledWith({big:"fatobject"});我的CustomCriteria类:varCustomCriteria=function(){this.big="fatobject";};测试失败,出现以下情况:Expectedsp

javascript - AngularJS:如何在配置阶段使用 $q 进行单元测试?

我有一个Angular服务负责加载config.json文件。我想在我的运行阶段调用它,所以我在我的$rootContext中设置了那个json,因此,它在未来对每个人都可用。基本上,这就是我所拥有的:angular.module('app.core',[]).run(function(CoreRun){CoreRun.run();});我的CoreRun服务在哪里:angular.module('app.core').factory('CoreRun',CoreRun);CoreRun.$inject=['$rootScope','config'];functionCoreRun($

javascript - 比较文件中的图像和从 Canvas 创建的图像

(我正在使用Protractor和Jasmine进行测试,我还在我的项目中包含了image-diff和node-canvas。)我需要比较两张图片并确保它们相同。一个保存在我的文件结构中,另一个是从Canvas创建的。我能够将Canvas转换为图像,还可以从文件中加载图像。这是我所拥有的:varimagediff=require('../node_modules/js-imagediff/js/imagediff.js');varCanvas=require('canvas');varfs=require('fs');varpath=require('path');beforeEach

javascript - Protractor、Jasmine 和在第一次失败时停止测试

在尝试弄清楚如何使某些jasmineexpect语句依赖于先前的expect语句时,我发现在Jasmine2.3.0之前,没有办法。(参见Stopjasminetestafterfirstexpectfails)但是,Jasmine2.3.0添加了一个选项stopSpecOnExpectationFailure,当设置为true时将在第一次失败时停止测试。对此前景感到兴奋,我修改了我的conf.js以包含以下选项:/**conf.js*/exports.config={framework:'jasmine',specs:['search-spec.js'],useAllAngular2

javascript - 检查传递特定参数时是否调用函数

我有2个简单的函数。第一个函数X接收一个数字或字符串。如果它接收到一个数字,我返回它的double,如果它接收到一个字符串,我调用另一个函数Y。当我的函数X接收到一个字符串作为参数时,我如何测试它是否调用函数Y?functionX(arg){if(typeof(arg)==='String')Y(arg)elsereturnarg*2}functionY(arg){return'Gotemptystring'}我想在测试中做什么..describe('AfunctionXthatchecksdatatype',function(){it('shouldcallfunctionYisar

javascript - 有没有办法将外部 Javascript 作为 Jasmine 的来源?

我正在尝试配置jasmine.yml(使用jasminegem)以使用从GoogleAPI提供的JQuery,而不是将其本地下载到我的服务器。即:src_files:-ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js不幸的是,这似乎不起作用,因为(根据配置文件中的注释)它正在寻找相对于src_dir的文件路径。那这不可能吗?谢谢鲁伊 最佳答案 我最终通过规范助手编写了javascriptinclude-在我的例子中是Livereload脚本:document.write

javascript - phantomjs 和 run-jasmine.js 超时

所以我遇到了一个奇怪的问题。我有一个Jasmine测试运行器在我的机器上本地运行,位于localhost:8080/test/runner.html当我在网络浏览器中打开它时,它运行良好。我想自动执行此操作,所以我使用了phantomjs(从brew安装——我在mac上)并且我使用了代码中的示例run-jasmine.js文件。但是,每当我针对URL运行它时,我都会得到:phantomjswar/test/spec/run_jasmine.jshttp://localhost:8080/test/runner.html'waitFor()'timeout所以我写了一个非常简单的脚本来查

javascript - 使 $httpBackend 忽略对服务器发出的任何请求

我有以下Controller(请注意,在实例化时我显式调用了$scope.getNotifications()):bla.controller("myctrl",["$scope","$http","configs",function($scope,$http,configs){$scope.getNotifications=function(){$http.get("bla/blabla").success(function(data){});};$scope.removeNotification=function(notification){varindex=$scope.allN

javascript - 在不更改数据库的情况下测试 POST 到 API 的策略

我正在使用jasmine-node测试我的API,它对我的​​GET路由非常有用。但是,现在我需要测试一些POST,但我不确定如何在不更改数据库的情况下进行测试。我的一个想法是在每个规范结束时重置我更改的任何值。这是否合理,或者是否有更好的方法来测试对我的API的POST请求? 最佳答案 将修改数据库的任何内容包装到事务中。您可以更改数据库,然后在每次测试后回滚。 关于javascript-在不更改数据库的情况下测试POST到API的策略,我们在StackOverflow上找到一个类似的