Написание тестов Mocha с IcedCoffeeScript?
Я пытаюсь выполнить некоторые запросы к базе данных в тесте Mocha, но у меня возникают некоторые проблемы.
Вот тест (с использованием Mongoose):
it.only "should create some objects", (done) ->
await models.MyModel1.count defer(err, oldModel1Count)
await models.MyModel2.count defer(err, oldModel2Count)
# ... do some stuff
await models.MyModel1.count defer(err, newModel1Count)
await models.MyModel2.count defer(err, newModel2Count)
assert.equal oldModel1Count + 1, newModel1Count
assert.equal oldModel2Count + 1, newModel2Count
Команда для запуска тестов:
mocha --compilers coffee:iced-coffee-script --require iced-coffee-script --require mocha --colors --recursive test"
Ошибка происходит в первой строке:
ReferenceError: err is not defined
Я могу только предположить, что он пытается использовать обычный CoffeeScript для выполнения этого кода, поэтому он считает, что defer
это функция и пытается оценить err
,
Можно ли написать тесты Mocha на IcedCoffeeScript?
2 ответа
Это работает для меня
mocha --require ./fix_my_iced_tests.js --compilers coffee:coffee-script
создать fix_my_iced_tests.js
require('iced-coffee-script').register()
создайте test/some_test.coffee (убедитесь, что исправление действительно работает)
assert = require 'assert'
describe 'test section', ()->
it 'is ok', (done)->
await setTimeout (defer next), 100
assert.strictEqual(1, 1)
done()
return
return
Вы должны получить что-то вроде этого
Type subdsl
√ is ok (102ms)
1 passing (109ms)
без исправления вы должны получить что-то вроде этого
ReferenceError: next is not defined
--- отредактировано ---
Гораздо лучший вариант найден здесь
mocha --compilers coffee:iced-coffee-script/register
Не уверен, что это все еще актуально, но сейчас 2015 год, и Node.js имеет первоклассную поддержку Promises и Generators, которая позволяет вам писать свой код точно так же лаконично и элегантно, как IcedCoffeeScript, но с гораздо меньшими складками.