0
我最近從0.8升級到1.0,我的應用工作正常。Ember Simple Auth 1.0測試助手
有一件事讓我感到驚訝,但我仍不明白的是如何使用新的驗收測試助手。
以前(0.8),我可以寫我的測試是這樣,他們將通過:
test('sign in and sign out', function(assert) {
visit('/');
andThen(function() {
assert.ok(find(':contains("Sign In")').length,
'expected to see "Sign In"');
});
authenticateSession();
andThen(function() {
assert.ok(find(':contains("Sign Out")').length,
'expected to see "Sign Out"');
});
invalidateSession();
andThen(function() {
assert.ok(find(':contains("Sign In")').length,
'expected to see "Sign In"');
});
});
但是,升級和新格式改寫它們之後:
import { authenticateSession, invalidateSession } from 'instatube-app/tests/helpers/ember-simple-auth';
test('sign in and sign out', function(assert) {
visit('/');
andThen(function() {
assert.ok(find(':contains("Sign In")').length,
'expected to see "Sign In"');
});
authenticateSession(application);
andThen(function() {
assert.ok(find(':contains("Sign Out")').length,
'expected to see "Sign Out"');
});
invalidateSession(application);
andThen(function() {
assert.ok(find(':contains("Sign In")').length,
'expected to see "Sign In"');
});
});
只有第一個斷言現在通過。
如果我將它們分割成單獨的測試,即:
test('when signed out display sign in button', function(assert) {
visit('/');
andThen(function() {
assert.ok(find(':contains("Sign In")').length,
'expected to see "Sign In"');
});
});
test('when signed in display sign out button', function(assert) {
authenticateSession(application);
visit('/');
andThen(function() {
assert.ok(find(':contains("Sign Out")').length,
'expected to see "Sign Out"');
});
});
然後將這些單獨測試通過,但我似乎無法讓他們工作的實際使用情況。
任何想法,爲什麼發生這種情況,以及如何解決它將非常感激。