在Mocha中描述()是什么
我正在试着用摩卡弄脏我的双手,这里是我从文档中看到的例子:
var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) })
大多数例子显示了第二个描述语句
describe('#indexOf()', function(){
从#indexOf()
#
开始。 这个#
的意义是什么? 为什么这不能简单地写成indexOf
? 我在哪里可以得到对描述如何工作的基本理解?
PS:我查看了http://visionmedia.github.io/mocha/#interfaces的文档,但无法弄清楚这些是如何进入画面的,以及这些接口是如何处理的。
谢谢
mocha的bdd语法是ruby RSpec的一个灵感,因此您可以findmocha寻找RSpec的惯例的最佳技巧,下面是一个很好的开始:
特别是在那里提到#
例如,使用Ruby的文档约定。 (或:):当引用一个类方法的名字时,#引用一个实例方法的名字。
看看摩卡的源代码,我没有看到它做了什么重要的#
出现在describe
的第一个参数。
这就是说 ,在JavaScript的某些文档系统(例如jsdoc )中,使用#
表示以下内容属于对象实例,而不属于对象的类。 所以Foo#bar
会是这样的:
var foo = new Foo(); foo.bar(...);
不是这样的:
Foo.bar(...)
后者将被表示为Foo.bar
。 因此,在testing套件中使用相同types的符号来区分被testing的方法是属于实例还是类是合理的。
从#indexOf()中的#开始。 这个#的意义是什么?
没有。 有人认为它看起来更好。
我在哪里可以得到对描述如何工作的基本理解?
这基本上是将testing分组在一起并before
一组testingbefore
/ after
运行的一种方法。
你会知道什么时候需要它,如果你问这个问题,你可以放心地忽略所有的describe
,并在没有它们的情况下写testing。