2015-06-04 101 views
0

我創建了一個彈出窗口,它將在第一次點擊時打開,並在第二次點擊時關閉。但是,我在測試時遇到問題。第二次點擊不會關閉彈出窗口。我發現問題是因爲在第一次點擊時彈出窗口還沒有出現在屏幕上,這就是爲什麼第二次點擊沒有關閉彈出窗口的原因。所以,我決定在點擊之間加一個延遲。有關如何實施延遲的任何想法?AngularJS Jasmine測試有沒有wait()函數?

describe('Popup', function(){ 
      it("Should close on second click", function(){ 
       compileDirective(400,'click','true'); 
       element.triggerHandler('click'); 
       waitttttttt(1000); // Wait function here before proceed to next line 
       element.triggerHandler('click'); 
       scope.$digest(); 
       timeout.flush(); 
       expect($('.sidepopright').length).toBe(0); 
       element.remove(); 
       $(".sidepopright").remove(); 
      }); 
     }); 

回答

2

你需要的是browser.waitForAngular();

describe('Popup', function(){ 
      it("Should close on second click", function(){ 
       compileDirective(400,'click','true'); 
       element.triggerHandler('click'); 
       browser.waitForAngular(); // Wait function here before proceed to next line 
       element.triggerHandler('click'); 
       scope.$digest(); 
       timeout.flush(); 
       expect($('.sidepopright').length).toBe(0); 
       element.remove(); 
       $(".sidepopright").remove(); 
      }); 
     }); 

browser.waitForAngular();會等到它到達前

+0

嗨,@malik_curtin充分反應,我想你的代碼,但我得到這個錯誤「的ReferenceError:瀏覽器沒有定義」,如何界定呢? – user2991183

+0

@ user2991183你在這裏用茉莉花量角器嗎? – Malik

+0

如果你在這裏使用業報嘗試添加「NG-情景」在卡瑪config.js框架應當是這樣的框架:[「NG情景」,「茉莉花」], – Malik

相關問題