2012-05-25 5 views
4

У меня есть модель, которая выглядит следующим образом:Как написать спецификационный файл с помощью requireJs?

//myModel.js 
define([], function() { 
    var MyModel = Backbone.Model.extend({ 
     // my code 
    }); 
    return MyModel 
}); 

Тогда Если я хочу написать спецификации для этой модели, как я должен загрузить модель, используя requireJs?

Я попытался следующее:

//myModel.spec.js 
define([ 
    "js/models/myModel", 
], function (MyModel) { 
    describe("My model", function() 
    { 
     beforeEach(function() 
     { 
      this.myModel = new MyModel({ 
       name: "my title" 
      }); 
     }); 
    }); 
}); 

Является ли это правильный путь?

+1

Thats точно, как у меня есть настройка с Jasmine и Spy.js. – srquinn

ответ

2

Да, это правильно. Самое замечательное в использовании RequireJS для тестирования - это то, что вы вынуждены объявлять все свои тестовые зависимости в своем блоке определения. По определению, единичный тест должен тестировать только . Итак, если у вас несколько зависимостей в одном тесте, это запах кода, что вы вообще не выполняете «модульное тестирование».

В идеале единственной зависимостью должен быть файл, который находится под тестом. Если у этого файла есть какие-либо зависимости, такие как серверные службы или сложный асинхронный APIS, вы можете использовать заглушки и макеты для имитации их. Посмотрите SinonJS на отличную библиотеку.

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