2016-03-17 55 views
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"'); 
    }); 
}); 

然後將這些單獨測試通過,但我似乎無法讓他們工作的實際使用情況。

任何想法,爲什麼發生這種情況,以及如何解決它將非常感激。

回答

1

所以萬一別人運行到這個問題,我設法通過在andThen服務員傭工來解決它,就像這樣:

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"'); 
    }); 
}); 
相關問題