그래서 버튼을 클릭하면 약속을하고, 해결하고, 데이터를 얻고, 해당 데이터를 페이지에 표시하는 각도 서비스로 보내는 사이트가 있습니다. 나는 단추를 찾아 클릭하고 데이터를 다시 얻었는지 확인하는 각진 테스트를 원합니다. 그러나 단추가 해결되기 전에 항상 테스트가 완료됩니다. 나는 browser.sleep()를 시도했지만 그저 일시 중지 된 약속은 결코 해결되지 않았다. 분지기에 관한 기타 많은 약속 관련 질문은 도움이되지 않습니다. 그 약속은 시험에서 설정되지 않았으므로 페이지 자체에 있습니다.방아쇠를 당기는 약속이 해결되기를 기다리는 것이 어떻게됩니까?
$scope.rollD2 = function() {
diceService.getD2Roll($scope.quantities.d2).then(function (data) {
$scope.rolls.d2 = data.roll;
});
};
그리고 다음은
<button id="d2Button" type="button" class="btn btn-success" ng-click="rollD2()">Roll</button>
<span><b>{{rolls.d2 | number}}</b></span>
가 클릭에서 호출 된 각 코드의 간단한 요약이다 : 여기
it('should roll a d2', function() {
element(by.id('d2Button')).click();
//whatever has to be here for the waiting to occur
expect(element(by.binding('rolls.d2')).getText()).not.toEqual('0');
});
는 HTML입니다 : 여기
내 테스트입니다 서비스 전화는 다음과 같습니다.
function getD2Roll(quantity) {
var url = "Dice/D2/" + quantity;
return getPromise(url);
}
function getPromise(url) {
var deferred = $q.defer();
$http.get(url).success(deferred.resolve).error(deferred.reject);
return deferred.promise;
}
테스트를 올바르게 대기 시키려면 어떻게해야합니까?
각도기의 browser.wait()를 사용해 보았습니다. http://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait – Aaron