2015-01-14 1 views

답변

23

$httpBackend.expect -에서 백엔드 정의

을 지정 - 요청 기대
$httpBackend.when를 지정합니다 응용 프로그램이 만든 요청에 ​​대한 어설 션을 만들고 해당 요청에 대한 응답을 정의합니다. 예상 된 요청이 수행되지 않았거나 잘못된 순서로 작성된 경우 테스트가 실패합니다.

백엔드 정의를 사용하면 특정 요청이 있었는지 여부를 주장하지 않는 응용 프로그램의 가짜 백엔드를 정의 할 수 있습니다. 요청이있을 경우 훈련 된 응답 만 반환합니다. 테스트가 진행되는 동안 요청이 이루어 졌는지 여부에 관계없이 테스트가 통과합니다.

따라서, 당신이 expect에 요청 기대를 설정 한 경우에는 정확한 같은 요청을하지 않을 경우 테스트가 실패한다는 것을 의미, 시대의 정확한 수. 그러나 when으로 설정하면 백엔드가 적절하게 응답하지만 얼마나 많은 요청 (있을 경우)이 올지 예상하지 않으므로 테스트가 실패하지 않습니다.

+0

여전히 불분명합니다. 'when *'처럼 사용되어야합니다 : "(* when * ever) 앱은 'some backend thing'을 요구합니다." –

+2

요청이 예상과 일치하지 않아 Expect가 실패하면 Expect가 던져 버릴 것입니다. '언제'는 기대가 없으면 요청에 적절하게 응답하지만 요청이 없으면 실패하지 않습니다. 요청을 특정 형식으로 제공한다고 주장하려면 'expect'를 사용하십시오. 요청을 신경 쓰지 않는다면 'when'을 사용하십시오. –