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'

両方のテストは、互いに独立して合格します (つまり、ファイルが 1 つしか存在しない場合)。ただし、user.signupテストはテストがない場合にのみ合格します。Meteor がuser.joinファイルをファイル名順に実行する方法が原因であると思います。

beforeEachグローバル スコープを持っているようで、 の 1 つが の 1user.joinつをオーバーライドしているuser.signupため、サインアップ テストが間違ったルートで実行されて失敗します。これがなぜなのか、またはローカルスコープにロックダウンする方法はありますか?

ありがとう!

4

1 に答える 1

0

問題はアイアンルーターでした。解決策については、次の記事を参照してください: https://meteor-testing.readme.io/docs/jasmine-integration-tests-with-iron-router

于 2016-01-08T01:15:53.397 に答える