Подтвердить что ты не робот

Проверка кода CoffeeScript?

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

4b9b3361

Ответ 1

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

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

UPDATE: Jasmine тесты могут быть работать на node.js, и в этом случае оба теста и тестируемый код могут быть CoffeeScript, без необходимости какого-либо этапа компиляции.

Ответ 2

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

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

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

Ответ 3

Я тестирую 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 объясняется в статье...

Ответ 4

Для Coffee- Script Тестирование устройства вы можете попробовать Beast-Test, он был написан с нуля для кофе script. FYI я сам, но я думаю, вам понравится, тем не менее. Он похож на JUnit