unit testing的JavaScript代码风格
我开始使用JavaScript的unit testing(与茉莉花)。
我有unit testingC#代码的经验。 但是,鉴于JavaScript是一种dynamic语言,我发现它是非常有用的,并使用JavaScript的expression力量编写testing,例如:
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(); }); }); });
就做这种非常规的testing写作而言,我并没有做过这样的testing(testing用例列表非常类似)
所以我想我的问题是
编写这样的testing是好的,还是应该将自己限制在一个更“静态types”的testing夹具上?
好问题!
是的,编写像这样的unit testing是完全正确的。 它甚至被鼓励。
JavaScript是一种dynamic语言,可以让你轻松地模拟对象。 DI和IoC 真的很容易做到。 一般来说,用茉莉花(或我个人喜欢的摩卡)进行testing是一个愉快而有趣的体验。
值得一提的是,由于您使用的是dynamic语言,因此您需要进行testing,而不是使用静态types的语言。 testing通常会强制执行现有的成员和方法以及types。
没有接口来定义你的合同,通常, 你的testing定义了你的代码的合同,所以看到testing在你不使用C#的情况下进行这种validation(比如在你的代码中)并不罕见。
- 从咕噜哟angular度的完整的项目select不同的环境?
- Grunt手表不工作
- 如何使用Grunt或Node服务器基于User-Agent(移动和桌面)redirect请求/代理?
- Grunt构buildSublime Text 2:process.env undefined
- 如何解决错误信息“Can not find module'abbrev'
- 当主机是0.0.0.0时,grunt-connect不工作
- grunt-sass缩小的CSS Sourcemap不正确
- 是否有可能使用gruntjs和/或lesscss将所有的CSS放在一行?
- 如何永久在Digital Ocean上运行我的MEANjs应用程序?