草庐IT

jasmine-bail-fast

全部标签

javascript - Jasmine 测试中条件语句的使用

我有两个功能要测试;一个仅在“现代浏览器”中运行,另一个仅在“旧版”浏览器中运行。我使用Jasmine作为我的测试框架,使用Karma来运行我的测试。Karma将启动许多运行所有测试的浏览器。我的问题是在所有浏览器中测试我的所有功能会导致一些测试失败。例如,测试一个只应在现代浏览器中运行的函数在IE8中测试时会失败。要测试的代码:functiongetStuffFromSmartBrowser(){return'foo';}functiongetStuffFromNotSoSmartBrowser(){return'bar';}if('intelligence'inbrowser){g

javascript - 使用特定的 keyCode 测试 Jasmine 中的按键事件

我正在为触发事件的AngularJS指令编写测试当某些键被按下时。根据我的手动测试,一切正常。我想成为一名优秀的人,也想拥有一个完整的单元测试套件,但我遇到了一个我自己无法解决的问题:我想发送一个具体的keyCode在我的triggerHandler()在我的测试中调用,但我找不到一种方法来指定实际有效的键。我知道很多关于使用特定数据构建和发送事件的主题的问题和答案,但它们都不适用于我的设置:我的设置Karma测试运行器运行测试的PhantomJS浏览器(但也尝试过Firefox和Chrome但没有成功)我没有使用jQuery,我希望有一个常规的JS解决方案。一定有!测试代码varev

javascript - 使用 grunt-contrib-jasmine 运行单个规范

在使用grunt-contrib-jasmine时,我如何在命令行上指定要运行的单个规范文件?我的Jasmine部分看起来像这样:jasmine:{myapp:{src:['src/base.js','src/**/*.js']},options:{spec:['spec/models/**/*.js','spec/views/**/*.js']}}我只想为spec/models/file1.js运行测试。 最佳答案 有人用--filter命令行参数为你做了这件事,尽管它还没有被拉入master中:https://github.co

javascript - 用 Jasmine 检查两个边界(匹配器之间)

在Jasmine中,有toBeGreaterThan和toBeLessThan匹配器。如果我想检查特定范围内的整数值怎么办?是否有类似toBeInBetween匹配器的东西?目前,我可以在两个单独的expect调用中解决它:varx=3;expect(x).toBeGreaterThan(1);expect(x).toBeLessThan(10); 最佳答案 您可以运行bool比较并断言结果为true:expect(x>1&&x另外,jasmine-matchers引入了toBeWithinRange()自定义匹配器:expect(

javascript - 如何避免 Protractor 出现 "jasmine.suite() required"错误信息?

我为验证登录页面上的凭据而编写的代码是:describe('Login',function(){varloginURL;varemail=element(by.id("email"));varpassword=element(by.id("password"));varLoginButton=element(by.buttonText("Signin"));});it('shouldredirecttologinpage',function(){browser.get('https://pacific-meadow-5124-dev-test.herokuapp.com');login

javascript - 在 Jasmine 中每次测试后如何自动恢复所有 sinon.js spy ?

有什么方法可以找到sinon.js中所有活跃的spy吗?我希望能够做这样的事情:afterEach->sinon.restoreAllSpies()it"shouldnotcreateanewMyClass",->spy=sinon.spy(window,'MyClass')expect(spy).not.toHaveBeenCalled()目前,我需要费力地(而且容易出错!)这样做:it"shouldnotcreateanewMyClass",->spy=sinon.spy(window,'MyClass')expect(spy).not.toHaveBeenCalled()wind

javascript - 如何使用 Jasmine 监视静态类方法

我有一个带有静态方法的类,我想在Jasmine中对其进行测试。我知道静态方法不能在类的实例上调用。因此,除了它找不到spyOn的方法这一事实之外,我的测试没有通过,但是如何使用Jasmine测试类中的静态方法?classFoo{staticfoobar(a,b){returna*b}}Jasmine测试it('shouldtestastaticmethod',()=>{letfoo=newFoo()spyOn(foo,'foobar')foo.foobar(2,3)expect(foo.foobar).toBe(6)}) 最佳答案

javascript - 使用 jasmine 测试 Backbone 关系模型

假设我有两个简单的固定文件,一个用于用户(1),一个用于消息(2)。消息的Backbone模型如下(3)。如果我加载“MessageFixture”,我还想获得有关消息模型中指定的用户的相关信息。使用jasmine测试套件在规范View(4)中激活此目标的正确方法是什么?详情请见(4)中的评论。(1)//UserFixturebeforeEach(function(){this.fixtures=_.extend(this.fixtures||{},{Users:{valid:{status:'OK',version:'1.0',response:{users:[{id:1,name:

javascript - 如何使用 Karma、Jasmine 和 Istanbul 指定测试应涵盖哪些功能/方法

我正在尝试弄清楚如何限制我的测试,以便覆盖率报告者只考虑在为该功能专门编写测试时覆盖的功能。下面的例子来自PHPUnitdoc很好地展示了我试图实现的目标:The@coversannotationcanbeusedinthetestcodetospecifywhichmethod(s)atestmethodwantstotest:/***@coversBankAccount::getBalance*/publicfunctiontestBalanceIsInitiallyZero(){$this->assertEquals(0,$this->ba->getBalance());}如果执

javascript - Jasmine 使用 PhantomJS : ReferenceError: Can't find variable: $ 丢失了 jQuery

我想用PhantomJS在控制台中测试Jasmine使用jQuery的JS代码,但是ReferenceError:找不到变量:$我可以在浏览器中通过Jasmine正常测试代码。感谢您的帮助。$phantomjsexamples/run-jasmine.jshttp://localhost:8888/ReferenceError:Can'tfindvariable:$http://localhost:8888/public/javascripts/PhotoTable.js:59ReferenceError:Can'tfindvariable:$http://localhost:8888