Модульное тестирование CoffeeScript? - PullRequest
34 голосов
/ 28 июня 2010

Я использую CoffeeScript в приложении Rails, и я хотел бы протестировать его.Google ничего не нашел, есть ли способ сделать это, кроме написания моей собственной инфраструктуры тестирования или тестирования JavaScript, который выводит CoffeeScript?

Ответы [ 4 ]

24 голосов
/ 28 июня 2010

Вы можете использовать любой фреймворк для тестирования javascript с CoffeeScript. Это будет тестирование Javascript, который выводит CoffeeScript, что необходимо, поскольку сам CoffeeScript не может быть выполнен.

Написание собственной среды тестирования для CoffeeScript - это весело ( Я сделал ), но совершенно необязательно.

ОБНОВЛЕНИЕ: Жасмин тесты могут быть запущены на node.js , и в этом случае оба теста и код теста могут быть CoffeeScript, без необходимости какого-либо шага компиляции. 1011 *

11 голосов
/ 10 января 2011

Вы можете использовать QUnit "как есть", но по-прежнему писать только кофе-скрипт - и без клея-кода.
В качестве примера у меня есть очень маленький проект с использованием чистого кофе на github - rubyann .

Тестовая страница HTML rubyann_tests.html , ссылается на файл rubyann_tests.coffee , в котором тестируется jquery.rubyann.coffee . Я не написал ни javascript, ни какой-либо другой код для этой работы.

Тесты запускаются в Chrome только на локальном компьютере, если вы используете аргумент командной строки - allow-file-access-from-files . Но это работает на Firefox и даже IE без проблем.

дополнение - тесты также настроены для запуска в командной строке через Node / gulp / qunitjs - загрузите репозиторий и введите npm run test

2 голосов
/ 04 апреля 2012

Я тестирую CoffeeScript в своем Rails-приложении с помощью QUnit и написал, как я это делаю, здесь: http://effectif.com/coffeescript/qunit-boilerplate

Самым интересным в моей статье является использование обратного вызова Coffee.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 голосов
/ 18 апреля 2014

Для тестирования Coffee-Script Unit вы можете попробовать Beast-Test он был написан с нуля для coffee-script. К вашему сведению, я сам, но я думаю, что вам понравится, тем не менее Это похоже на JUnit

...