私の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
ため、サインアップ テストが間違ったルートで実行されて失敗します。これがなぜなのか、またはローカルスコープにロックダウンする方法はありますか?
ありがとう!