2013-03-19 2 views
5

Я начинаю с тестирования модуля javascript (с Jasmine).Unit testing javascript code style

У меня есть опыт в модульном тестировании кода C#. Но учитывая, что Javascript это динамический язык, я считаю, это очень полезно использовать это, и написание тестов, используя выразительную мощь JavaScript, например:

describe('known plugins should be exported', function(){ 
    var plugins = ['bundle','less','sass','coffee','jsn','minifyCSS','minifyJS','forward','fingerprint']; 

    plugins.forEach(function(plugin){ 
     it('should export plugin named ' + plugin, function(){ 
      expect(all[plugin]).toBeDefined(); 
     }); 
    }); 
}); 

Насколько делают этот вид нетрадиционного Test- письма, я не пошел дальше, чем делать такого рода тестов (массив со списком тестов, которые очень похожи)

Так что я думаю, мой вопрос

это прекрасно, чтобы написать тесты, как это, или я должен сдерживать себя более «статически типизированным» испытательным креплением?

ответ

3

Большой вопрос!

Да, это вполне нормально, чтобы написать модульные тесты, подобные этому. Это даже поощряется.

JavaScript, являющийся динамическим языком, позволяет легко обманывать объекты. DI и IoC - действительно легко сделать. В целом, тестирование с помощью Jasmine (или Mocha, которое я лично предпочитаю) - приятный и увлекательный опыт.

Следует упомянуть, что, поскольку вы находитесь на динамическом языке, вам нужно иметь тесты, которые вы не делали на статически типизированных языках. Тесты обычно применяют элементы и существующие методы и типы.

не имея никаких интерфейсов для определения вашего контракта, часто тесты определяют контракт вашего кода так что это действительно не редкость увидеть тесты делают этот вид проверки (например, в коде), где вы не были бы в C#.

+1

абсолютно, мне в основном хотелось мнения о том, было ли бесполезно выражать такие тестовые примеры – bevacqua