2016-03-04 2 views
0

Попытка структурировать тесты 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 не работает? Я что-то упускаю?

ответ

0

beforeEach от QUnit 2.x, в то время как в QUnit 0.9 это setup.

Эти вопросы стали понятными после прочтения QUnit 2.x Upgrade Guide.

Смежные вопросы