1

在我的 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具有全局范围,并且 fromuser.join覆盖了 in user.signup,导致注册测试在错误的路线上执行并失败。知道为什么会这样,或者如何将其锁定在本地范围内吗?

谢谢!

4

1 回答 1

0

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

于 2016-01-08T01:15:53.397 回答