Meteor Velocity Jasmine:预防每个全球范围之前的描述

时间:2016-01-07 01:26:28

标签: meteor coffeescript jasmine meteor-velocity

在我的Meteor应用程序中,我在/join处有一个带有禁用按钮的表单。我使用以下集成测试文件测试此禁用状态:

// tests/jasmine/client/integration/user/joinSpec.js.coffee

describe 'user', ->

  describe 'join', ->

    beforeEach ->
      Router.go 'join_path'

    it 'is unsubmittable by default', ->
      expect($('#join-submit')).toHaveAttr 'disabled', 'disabled'

我还在/signup处有一个带有禁用按钮的表单。我使用这个额外的集成测试文件测试了这个禁用状态:

// tests/jasmine/client/integration/user/signupSpec.js.coffee

describe 'user', ->

  describe 'signup', ->

    beforeEach ->
      Router.go 'signup_path'

    it 'is unsubmittable by default', ->
      expect($('#signup-submit')).toHaveAttr 'disabled', 'disabled'

两个测试彼此独立地传递(即,当仅存在一个文件时)。但是,user.signup测试只是忽略了user.join测试,我假设由于Meteor按文件名顺序执行文件的方式。

似乎beforeEach具有全局范围,user.join中的那个覆盖了user.signup中的那个,导致注册测试在错误的路由上执行并失败。知道为什么会这样,或者如何将其锁定到本地范围?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是铁路由器。请参阅以下文章以获取解决方案:https://meteor-testing.readme.io/docs/jasmine-integration-tests-with-iron-router