2013-03-19 128 views
5

我开始使用JavaScript单元测试(与茉莉花)。单元测试javascript代码风格

我有单元测试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(); 
     }); 
    }); 
}); 

至于做这种非传统的测试 - 写作,我没有比做这种测试(阵列的测试案例非常相似的列表)走得更远

所以我想我的问题是

它是细写这样的测试,或者我应该将自己限制在一个更“静态类型”的测试夹具上?

回答

3

伟大的问题!

是的,编写像这样的单元测试是完全正确的。它甚至被鼓励。

JavaScript是一种动态语言,您可以轻松地模拟对象。 DI和IoC都是真的很容易做到。 一般来说,用茉莉花(或我个人比较喜欢的摩卡)进行测试是一种愉快而有趣的体验。

值得一提的是,由于您使用的是动态语言,因此您需要进行测试,而不是使用静态类型语言。测试通常会强制执行现有的成员和方法以及类型。

由于没有接口来定义你的合同,通常,你的测试定义合约代码的所以真的并不少见测试做这种验证的(就像在你的代码),您不会在C#。

+1

绝对,我主要是想表达一下这样的测试用例是否感到混乱 – bevacqua 2013-03-19 20:44:19