2013-07-20 1 views
1

나는 아주 간단한 xhr 모의 예제를하고 있으며 리턴 성공을 설정할 수있는 능력이 필요하다. (라이브러리를 사용할 수없는 특정 예제에서도).매번 사용 후 ajaxSetup을 지우는 방법은 무엇입니까?

function fakeHttpRequest(json) {              
    $.ajaxSetup({ 
     complete: function() { 
     this.success.call(this, json); 
     } 
    }); 
    } 

내가 위의 일을하고있어 내가 3 번을 호출하면, 마지막 통합 테스트 내가 반환에 3 가지 번이 사용하고 있음을 (대신 내가 예상대로 1)를 제외하고 잘 작동합니다. 이것을 호출하고이를 지우거나 테스트간에 재설정 할 수 있습니까?

업데이트 여기

경우에만 가짜 아약스 성공 응답에 필요하면 내가

function fakeHttpRequest(json) { 
    jQuery.ajax = function(opts) { 
    opts.success(json); 
    } 
} 

답변

0

으로 결국 무엇을, 당신은 할 수 항상 가짜 (see this question) :

var fakeResponse; 

$.ajax = function(options) { 
    options.success(fakeResponse); 
} 

$ .ajax라는 객체를 호출하기 전에 fakeResponse를 설정하기 만하면 객체의 success 기능.

+0

$ .ajaxSetup()을 설정 또는 해체 (QUnit)에 넣은 후에도 단일 테스트가 실행되고 프로덕션 코드가 $ .getJSON에 직접 도달하면 여러 로그가 표시됩니다. (내 질문에 위에 표시) –

+0

더 나은 방법이 이것을 달성 무엇입니까? 프로덕션 코드에서 $ .getJSON을 수행 할 때 xhr의 성공을 위조 할 필요가 있습니다 (테스트간에 안전하게 재설정 할 수있는 무언가)? –

+0

간단한 AJAX 조롱에 대한 답변을 편집했습니다. – mor

관련 문제