Попытка структурировать тесты QUnit 0.9.0 с require.js, как объясняется Nathan Davison here, но с использованием QUnit.module. (CoffeeScript файлы преобразуются в JS файлы перед открытием тестовой страницы)beforeEach не работает в модульных тестах QUnit/Sinon с Require.js в CoffeeScript
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="css/qunit.css">
<script data-main="unittestsmain" async src="js/require.js"></script>
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
</body>
</html>
unittestsmain.coffee (там было 3 тестовые модули, удалены для экономии места):
requirejs.config
baseUrl: '.'
paths:
"sinon": 'js/sinon-1.17.3'
"QUnit": 'js/qunit'
shim:
"QUnit":
exports: 'QUnit',
init:() ->
QUnit.config.autoload = false
QUnit.config.autostart = false
require ["QUnit", "sinon", "test_sum"],
(QUnit, sinon, test_sum) ->
test_sum.run()
QUnit.load()
QUnit.start()
test_sum .Кофе (аналогично одному из примеров в QUnit documentation, за исключением того, что они были обернуты в определение):
define ["sum"], (sum) ->
run:() ->
module "Sum class",
beforeEach: ->
console.log "in beforeEach:", (p for p of @)
@adder = sum.Sum()
test "Sum: common cases", (assert) ->
assert.equal sum.sum_of_entries([1, 2, 3]), 6
assert.equal sum.sum_of_entries([]), 0
return
# ...
test "Sum: adder class", (assert) ->
console.log "in test:", (p for p of @)
@adder.add(5)
assert.equal @adder.result(), 0
return
У меня не было проблем, прежде чем добавлять тест для класса adder, который жалуется на Firefox: this.adder is undefined
(и указывает на ... часть.). В Chromium: «TypeError: невозможно прочитать свойство« добавить »неопределенного» в той же функции.
Тестовая страница в браузере выглядит хорошо, за исключением теста на отказ, упомянутого выше. (. И не очи "в beforeEach" в журнале):
В console.log выходы in test: ["setup", "teardown", "beforeEach"]
Пробовали некоторые незначительные изменения, как => вместо -> .start, .load заказа, но не помогает. define ["QUnit", "sum"], (QUnit, sum) ->
, а затем с использованием QUnit.
в test_sum тоже не помогает.
Я думаю, самый большой вопрос, почему beforeEach не работает? Я что-то упускаю?