Я использую CoffeeScript в приложении Rails, и я хотел бы unit test его. Google ничего не обнаружил, есть ли способ сделать это, не дописывая мою собственную структуру тестирования или тестируя JavaScript, который вызывается CoffeeScript?
Проверка кода CoffeeScript?
Ответ 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