2015-06-04 62 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

相关问题