2016-06-16 2 views
2

여기에 설명 된이 튜토리얼과 비슷한 모카 테스트 설정을 작성했습니다 : https://github.com/jesstelford/react-testing-mocha-jsdom.jQuery를 반응 앱에 대한 모카 테스트에로드하십시오.

이 구조체에 jQuery를로드하는 방법이 궁금합니다. 내가 require('jquery') 테스트 JS 파일로 포함 시켰지만, $.ajax을 호출하면 TypeError: Attempted to wrap undefined property ajax as function이라고 말하는 오류가 발생합니다. 나는 Node가 브라우저 내에서 JavaScript를 실행하지 않기 때문이라고 생각합니다. 그러나, 나는 window environment을 사용해 보았지만 여전히 운이 없다.

전통적인 방법은 HTML 태그에 jQuery를 포함시키는 것이지만 HTML 파일이 없으므로 여기서 어떻게 할 것인지 잘 모르겠습니다.

+0

var $ = require ('jquery');'? – PhilVarg

+0

@PhilVarg 그래, 나는 그걸 정확하게하고있다. – frogbandit

+0

@PhilVarg 죄송합니다. 오류 메시지는 실제로 조금 다릅니다. 올바른 것으로 업데이트했습니다. – frogbandit

답변

2

이것은 모카의 특정 jquery 메서드에서 저에게 효과가있는 패턴입니다. 아약스에서는 작동하지만 잘 알려주지 않을 것입니다.

import jsdom from 'jsdom' 
import _$ from 'jquery' 

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>') 
global.window = global.document.defaultView 
const $ = _$(global.window) 
+0

감사합니다. 어떻게 테스트 코드를 구성했는지 물어봐도 될까요? 나는 그들 모두를 하나의 파일에 가지고있다. – frogbandit

+0

@frogbandit 이것은 테스트 파일을 구성하는 좋은 예입니다. https://github.com/StephenGrider/AdvancedReduxCode/tree/master/testing/test – jmancherje