我有茉莉花的经验,并且相当喜欢它。有没有人有过Jasmine和Mocha的使用经验,尤其是Rails?我想知道是否值得切换。
Answers:
我已经在Jasmine和Mocha中进行了测试。首先,切换相对容易。基本模式describe
和it
BDD模式相同。您将需要更改断言的方式,并切换到用于异步测试的其他接口。总体而言,它们是可比的。
Mocha的异步接口更加简单和一致。测试和设置可以是同步的也可以是异步的,这很棒。这以及TJ Holowaychuck是史诗般的代码诗人这一事实,是尝试Mocha的充分理由。
我确实认为Jasmine匹配器更易于阅读且更优雅,尤其是与jasmine-jquery插件搭配使用时。Mocha通常与用于断言的单独库配对,如果正在执行浏览器内测试,则通常与chai.js配对,而对于仅用于节点的测试,则通常与should.js配对。我对chai的assert.equal()
界面很满意,但是Jasmine风格expect($("#central_errors").html()).toContain("must provide a name");
对我来说似乎更优雅。我不喜欢expect(42).to.be.above(41)
使用点号分隔的句子的chai.js风格界面,因为它在听觉上效果不佳。
归根结底,这是一个个人喜好问题,我强烈建议您花一天左右的时间来编写Mocha测试而不是Jasmine来看看它的感觉。完全值得的投资,即使您决定坚持使用Jasmine,您也会从第一手的知识开始这样做,并且对解决Jasmine解决的某些问题的其他方法有所了解。我尝试过,我坚持使用Mocha的部分原因是因为对TJ的赌注是不错的选择,但是Jasmine还是一个成熟,扎实且被广泛采用的库。
在github上查看Teabag项目。它特别允许您将资产管道与Mocha,Jasmine或QUnit一起使用。
https://github.com/modeset/teaspoon
Mocha是一个非常出色的库,但是我通常使用Jasmine-对我来说,它主要是关于Jasmine的知识和经验,但是Mocha具有一些非常酷的功能-例如让您知道何时将事物渗入全球范围。
弄清楚该项目值得一提,因为它特别允许您(在不同套件中)同时使用两者,以便您自己决定。