2014-03-28 3 views
3

비동기 테스트를 위해 done()을 호출하려고하는데 작동하지 않습니다. '정의되지 않은 함수가 아닙니다'오류가 발생합니다.비동기 테스트가 각도기로 작동하지 않습니다

Google을 사용하려고했는데 재스민에 문제가있는 것으로 나타 났지만 여전히 해결할 수 없습니다. 오류가 실제로 예상치 못한 것으로 보입니다. 어떤 도움을 주시면 감사하겠습니다.

+0

당신이 논문의 테스트를 위해) (다 호출 할 필요가 확실합니까? 그것없는 행동은 무엇입니까? –

+0

'done'을 사용하지 않으면 오류가 발생하지 않습니다. 하지만 난 비동기 테스트 케이스의 번호를 실행하는 coz 그것을 사용하고 싶습니다. 그리고 순차적으로 작동하게하려면 'done'을 사용하는 옵션을 찾았지만 여기서는 사용할 수 없습니다. – Vikram

+0

나는 모든 분도기 테스트가 비동기식이며, 내가 보았거나 작성한 것들이 순전히 done()을 호출 할 필요없이 순조롭게 진행된다고 생각한다. 당신이 달성하고자하는 것에 대해 좀 더 많은 맥락을 제시 할 수 있고, 왜 done()이 필요하다고 생각합니까? –

답변

2

undefined is not a functiondone()에 수신 하시겠습니까?

나는 귀하의 문제가 여기에 있다고 생각합니다 : ptor.findElement(protractor.By.repeater('message in messages')) 그렇다면 명확하게 각도 페이지에 있으므로 repeater에 대한 webdriver의 findElement에 관한 것이므로 그렇게하지 않아야합니다. 이 전혀 필요하지 않습니다 여기 done()를 호출하기 때문에 다음과 같은 전체 테스트를 다시 작성

  • 최근에

    1. 업그레이드 각도기 :

      어쨌든, 난이 일을 할 것입니다.

    재 작성 :

    describe('Login screen tests', function() { 
        // Page Objects. TODO: Extract to separate module file. 
        var submitBtnElm = $('#submit'); 
        var messagesRepElms = element.all(by.repeater('message in messages')); 
    
        describe('Blank Username & Password test', function() { 
        // Moved login get out of beforeEach since you need to get it once 
        it('Opens an Angular login page', function() { 
         browser.get('http://staging-machine/login/#/'); 
        }); 
    
        it('Clicks submit btn without entering required fields', function() { 
         submitBtnElm.click(); 
        }); 
    
        it('Should trigger validation errors', function() { 
         expect(messagesRepElms.first().isPresent()).toBeTruthy(); 
         expect(messagesRepElms.first().getText()). 
         toContain('Username or Password can\'t be blank'); 
        }); 
        }); 
    });