2011-09-27 3 views
2

zombie.visit을 사용할 때 좀비를 사용하여 좀비를 사용하면 좀비가 페이지의 모든 스크립트가로드되기 전에 서약 콜백을 호출하므로 내 백본 앱이로드되지 않았습니다. 그러나 'done'이벤트 (예 : browser.on 'done', @callback)를 기다리는 경우 콜 백이 호출되기 전에 내 백본 앱이로드됩니다.zombie.js visit() 너무 일찍 다시 호출 (browserify 사용)

'done'이벤트가 수신되면 콜백 전용 방문 기능을 얻으려면 어떻게해야합니까?

PS 임 백본/밑줄/JQuery와 및 기타 JQuery와 플러그인을 포함한 꽤 많은 스크립트를로드 할 browserify 사용

답변

0

내가 이상한, I가 '사용하기 위해 다른 제안의 일부를 사용, 같은 일에 달려 있지만, 문서가 완전히로드 될 때까지 기다리는 방법을 알아 냈습니다 (JS에서 가져온 것들을 포함하여!).

it('should have the correct title', function() { 
    browser.on('done', function(doc) { 
     console.log("DONE finally finito.."); 
     //console.log(browser.html()); 
     expect(doc.document.title).toMatch('.*Login'); 
     expect(doc.document.title).not.toEqual('XXXXX'); 
     asyncSpecDone(); 
    }); 
    browser.visit(LOGIN, function(err, doc) { 
    }); 
    asyncSpecWait(); 
}); 

여기서 LOGIN은 로그인 페이지의 URL입니다. browser.html()은 전체 페이지를 인쇄하고 예상대로 동적으로 삽입 된 요소를 보았습니다. FWIW, 내 응용 프로그램 express.js 비행 중에 컴파일하는 노드 .ejs 파일을 사용하고 있습니다; 그러나 이것은 좀비로 테스트하려는 동적으로 주입 된 페이지에 적용될 가능성이 높습니다.

내 마음에 이것은 반 패턴처럼 보입니다. 저자가 저를 수정하거나 대안을 게시한다면 나는 좋아할 것입니다. 그러나 이것은 일시적인 해결책입니다.

관련 문제