2013-04-25 3 views
1

내가 Google지도 API를로드 할 https://github.com/millermedeiros/requirejs-plugins에서 비동기 플러그인을 사용하고 테스트를 실행하는 RequireJS Google지도 비웃음 :오프라인

define(['async!//maps.google.com/maps/api/js?libraries=places&sensor=false'], function() { 
    // ... 
}); 

이 단위 테스트를 실행할 때 인터넷 접속을 요구하는 결과가 있습니다. "리소스로드 실패"오류를 발생시키지 않으면 서이를 오프라인으로 실행하도록로드하는 코드를 조롱하거나 허용하는 방법이 있습니까?

+0

내가 Sinon FakeServer을 제안하려고 했어요,하지만 난 비동기 플러그인 JSONP를 사용하는 것을 알 수있다. 아마도 유닛 테스트 중에 async plugin 버전을 작성해야 할 것입니다. – explunit

답변

1

제 솔루션은 QUnit 테스트를 실행할 때 내 google_maps 모듈 대신 빈 모듈을 사용하는 것입니다.

google_maps.js

:

define(['async!//maps.google.com/maps/api/js?libraries=places&sensor=false'], function() { 
    return window.google; 
}); 

google_maps_stub.js :

define(function() { 
    window.google = {}; 
    return window.google; 
}); 

requirejs_config_qunit.js :

define(['./requirejs_config_development.js'], function() { 
    requirejs.config({ 
     paths: { 
      'google_maps': 'js/lib/google_maps_stub' 
     } 
    }); 
}); 
관련 문제