草庐IT

javascript - javascript getter 的 Jasmine 测试不起作用

我正在为angularjs工厂编写一些测试,但有些期望不起作用,我真的不知道为什么。这是我的工厂(其中的一部分)。'使用严格';angular.module('myAppMod').factory('Person',function(BaseModel){returnBaseModel.extend({getfullname(){varname=[];if(this.first_name){name.push(this.first_name);}if(this.person_extra&&this.person_extra.middle_name){name.push(this.per

javascript - 揭示模块模式 - 使用 Jasmine 进行单元测试

在与揭示性模块模式短暂接触后,我开始意识到单元测试模块的挫折。但是,我无法确定这是否是我测试模块的方法,或者是否有某种形式的解决方法。考虑以下代码:varmyWonderfulModule=(function(){functionpublicMethodA(condition){if(condition==='b'){publicMethodB();}}functionpublicMethodB(){//...}return{methodA:publicMethodA,methodB:publicMethodB}}());如果我想测试(使用Jasmine)从publicMethodA到

javascript - 如何使用 Jasmine 在 AngularJS 中测试 .catch Promise 返回?

我是Javascript的新手,刚开始学习AngularJS,但我的大部分测试用例都与我发现的一些很好的示例一起使用。不幸的是,我似乎找不到任何可以帮助我测试当前案例的东西。我正在使用一个模拟服务测试一个Controller,该服务的方法返回一个promise。我希望模拟服务返回一个错误,以便在Controller方法中执行“.catch”block。我可以通过几种方式判断它没有被正确调用:我正在使用istanbul用于代码覆盖,它告诉我我没有覆盖“catch”'.catch'block中的代码没有被执行,据我通过调试得知被测Controller,具体需要测试$scope.login中

javascript - Protractor Jasmine 描述嵌套在 it block 中的 block

首先,下面的代码似乎可以工作。但是,我还没有看到有人这样做,所以我想知道这是否合法,以及我是否遗漏了无法预料的缺点。上下文是我正在使用Protractor编写E2E测试,它使用Jasmine风格的describe/itblock。我的目标是加载一个页面并运行一堆it测试block,而不是每次都重新加载该页面(因为它很耗时)。我的构造是:describe("Homepage",function(){beforeEach(function(){browser.get("/");//loadsthepage});it('elements',function(){describe('testg

javascript - 如何在 Sinon 中过滤请求

我正在用Jasmine为Backbone应用程序编写单元测试。当然,我在测试中使用Sinon。但是现在我有问题了。我正在为登录屏幕编写测试,我需要模拟服务器响应-因为服务器工作非常糟糕。现在我的代码看起来是:describe('Login',function(){it('Shouldsimulateserverresponse',function(){server=sinon.fakeServer.create();server.respondWith("GET","http:\\example.com",[200,{"Content-Type":"application/json"}

javascript - 如何使用jasmine测试一个需要很长时间才能响应的异步函数?

我正在使用一个函数从webapi获取数据。基本上使用$.ajax。我现在用waits()像这样测试它:describe('xxxxxxxxxxxxxxxxxxxxx',function(){varr;it('fetchFilter',function(){runs(function(){model.fetch(opts).done(function(data){r=data;});});waits(2000);runs(function(){expect(r[0].gender).toBeDefined();});});});问题是:不能保证waits(2000)会很好地完成这项工作。

windows - Windows 命令行中的 Jasmine

如何使用Windows机器从命令行运行jasmine?我见过jasmine脚本在Linux中运行。我希望jasmine在命令行中独立运行,没有phantomjs或任何其他模拟服务器的javascript代码(我只需要jasmine,如果可能的话使用maven)。 最佳答案 我迷路了...假设问题是“我可以在默认的Windows安装上运行JavaScript,我可以用这种方式用Jasmine运行测试吗”?CScript/WScript将运行JavaScript,两者都是默认Windows安装的一部分(我相信启动W2K或WinXP)。您

windows - 30000 毫秒后 Protractor 超时

我正在尝试将Protractore2e测试集成到我的巡航控制系统中,我正在使用以下测试规范:describe('index',function(){varptor;it('shouldhaveatitle',function(){browser.get('http://juliemr.github.io/protractor-demo/');expect(browser.getTitle()).toEqual('SuperCalculator');});it('Checkgoogle',function(){browser.driver.get('http://www.google.c

javascript - 检测 Jasmine 测试何时完成

我正在运行jasmine像这样测试;jasmine.getEnv().addReporter(newjasmine.TrivialReporter());jasmine.getEnv().execute();我想使用JavaScript检测测试何时完成。我该怎么办? 最佳答案 作为@Xv。建议,添加一个记者将工作。你可以做一些简单的事情:jasmine.getEnv().addReporter({jasmineDone:function(){//thespecshavefinished!}});参见http://jasmine.gi

javascript - 使用 Protractor 验证文本部分

我想验证某个文本是否存在于字符串中(使用Protractor)。在我的例子中,以下代码:element(by.css('h1.text-center')).getText();将导致:ArrowGreySlimFitFormalTrouser-1(Size-X)现在,我想验证字符串ArrowGreySlimFitFormalTrouser是否包含在上面的文本中。请推荐! 最佳答案 使用jasmine有多种方法可以进行部分字符串匹配:expect(text).toContain("ArrowGreySlimFitFormalTrous