2010-06-28 5 views
32

저는 Rails 애플리케이션에서 CoffeeScript를 사용하고 있습니다. 단위 테스트를하고 싶습니다. Google은 아무것도 내놓지 않았습니다. 내 자신의 테스트 프레임 워크를 작성하거나 CoffeeScript에서 출력하는 JavaScript를 테스트하는 것만으로는 부족합니다.CoffeeScript 단위 테스트?

답변

23

CoffeeScript에서 모든 자바 스크립트 테스트 프레임 워크를 사용할 수 있습니다. 이것은 CoffeeScript 자체가 실행될 수 없기 때문에 필요한 CoffeeScript 출력물을 테스트하는 것입니다.

CoffeeScript 용 자체 테스트 프레임 워크를 작성하는 것은 재미 있지만 (전적으로 불필요한) 재미 있습니다 (I did).

업데이트 : Jasmine 테스트는 run on node.js 일 수 있습니다.이 경우 테스트와 테스트중인 코드는 모두 컴파일 단계가 필요없이 CoffeeScript가 될 수 있습니다.

+1

답변 해 주셔서 감사합니다. 나는 지금 QUnit과 함께 가기로 결정했다. 테스트 페이지를 가져 오려면 접착제 코드를 약간 써야했지만 괜찮습니다. –

+1

CoffeeScript 전용 커피 사양 도 있습니다. 대부분의 사람들 (나 자신 포함)은 여러분이 한 것처럼 JavaScript 단위 테스트 프레임 워크를 사용한다고 생각합니다. (나는 재스민을 사용합니다.) – RJHunter

+0

자스민을 coffeescript로 쓰면 http://coffeescript-cookbook.github.io/chapters/testing/testing_with_jasmine을 사용할 수 있다고 말하는이 페이지를 발견했습니다. coffeescript (및 Nodeunit) 만 작동하는지 또는 테스트 프레임 워크를 coffeescript 코드로 작성할 수 있는지 알고 있습니까? –

9

QUnit은있는 그대로 사용할 수 있지만 여전히 커피 스크립트 만 쓰고 글루 코드는 없습니다.
예를 들어 github의 매우 작고 순수한 커피 스크립트 프로젝트 인 rubyann이 있습니다.

HTML 테스트 페이지 jquery.rubyann.coffee을 테스트하는 rubyann_tests.coffee 파일을 참조하십시오. 나는이 일을하기 위해 자바 스크립트 나 다른 코드를 작성하지 않았다.

테스트는 명령 줄 인수 --allow-file-from-files을 사용하는 경우 로컬 컴퓨터의 Chrome에서만 실행됩니다. 하지만 그것은 문제없이 파이어 폭스와 심지어 IE에서 작동합니다. http://effectif.com/coffeescript/qunit-boilerplate

내 쓰기 업에서 가장 흥미로운 점은 커피에 대한 콜백을 사용하는 것이다 : 나는 QUnit 내 레일 응용 프로그램에서 커피 스크립트를 테스트하고있어, 나는 여기하고 있어요 방법까지 쓴

+0

감사합니다. 텍스트/coffeescript 태그에 대해 배웠습니다! –

1

테스트가 포함 된 파일이 테스트중인 코드가 포함 된 파일 이후에로드되는 것을 보장하기 위해 .load :

<script type="text/coffeescript"> 
    for file in ['models', 'controllers']            
    lib = "../../app/assets/javascripts/#{file}.js.coffee"       
    load_test = ->                 
     test = "#{file}_test.coffee"             
     -> CoffeeScript.load(test)              
    CoffeeScript.load lib, load_test() 
</script> 

기사에서 설명하는 test 변수를 무두질의 필요성 ...

0

커피 스크립트 단위 테스트를 시도 할 수 Beast-Test 그것은 커피 스크립트에 대한 지상에서 작성되었습니다. 참고로 나는 자신이지만 나는 당신이 그것을 좋아할 것이라고 생각하지 않는다. JUnit과 비슷합니다.