2014-11-21 6 views
1

나는 나의 오이 테스트를 실행하는 각도기를 사용하고 있습니다. 내 테스트에서 나는 다음과 같은 주장을 가지고있다 :각도기, 오이, 그리고 약속대로 : chai 어설 션 실패

label.getText().then(
       function(labelText){ 
        labelText = labelText.trim(); 
        console.log('label text: ' + labelText); 
        chai.expect(labelText).to.equal(arg1); 
        callback(); 
       }, 
       function() { 
        callback.fail('Could not get page label text'); 
       }); 

어설 션이 맞을 때 아무런 문제가 없다. 그러나 내 labelText가 arg1과 다른 경우 계속 실행하고 싶습니다만 예외를 추가하거나 실패 콜백을 추가하는 방법을 모르겠습니다. 지금은 내 응용 프로그램이 종료됩니다. 내가 실패 콜백을 사용하지 않기 때문에 나는 그것을 알고있다. (나는 그것을 가지고 있어야한다는 것을 알고 싶다.)

콜백 (callback)을 넣어야하는지 잘 모르겠습니다. 지금은 어디입니까?

온라인 솔루션을 찾고 있는데 모카를 사용하는 예가 있습니다. 나는 모카 나 재스민을 사용하지 않고있다. 난 그냥 각도기와 오이 프레임 워크를 사용하고 있습니다. Cucumberjs에는 단언 라이브러리가 없으므로, 약속 한대로 chai를 추가했습니다. 감사!

답변

1

expect() 콜백에 실패하면 Cucumber.js에 문제가있는 것 같습니다. 당신이 차이-약속-했기 때문에 설치,이 일을 시도 :

var labelText = label.getText().then(
    function(labelText){ 
    labelText = labelText.trim(); 
    console.log('label text: ' + labelText); 
    return labelText; 
    }); 
chai.expect(labelText).to.eventually.equal(arg1).then(callback); 

나는 this comment에서이 해결 방법을 가지고 그리고 그것은 나를 위해 잘 작동했다.

0

는 다음과 같은 비동기 코드를 주장 할 수 chai-as-promised이있는 경우 :

this.When(/^I assert async code$/, function(callback) { 
    expect(asyncMethod()).to.eventually.equal(true).and.notify(callback); 
});