我試圖用Jasmine寫一些測試,但現在有一個問題,如果有一些代碼是異步的在beforeEach
。如何測試Jasmine中的方法,如果beforeEach中的代碼是異步的?
示例代碼看起來像:
describe("Jasmine", function() {
var data ;
beforeEach(function(){
console.log('Before each');
getSomeDataFromRemote(function(res){
data = res;
});
});
it("test1", function() {
expect(data).toBe(something);
console.log('Test finished');
});
});
可以看到,在beforeEach
,我想從遠程獲取一些數據,並將其分配給data
異步。
但在test1
,當我嘗試驗證:
expect(data).toBe(something);
的數據是undefined
,因爲getSomeDataFromRemote
尚未完成。
如何解決?
我知道摩卡可以做異步設置,但我不太熟悉茉莉花。你有沒有嘗試在你的'beforeEach'中使用[異步規範結構](https://github.com/pivotal/jasmine/wiki/Asynchronous-specs)?文檔只顯示它們在規範中使用,但它們也可能在'beforeEach'中運行。 –