我是node.js和用于单元测试的框架Mocha的新手,但我在cloud9 IDE中创建了几个测试,只是为了看它是如何工作的。代码如下所示:
var assert = require("assert");
require("should");
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('Array', function(){
describe('#indexOf()', function(){
it('should return the index when the value is present', function(){
assert.equal(1, [1,2,3].indexOf(2));
assert.equal(0, [1,2,3].indexOf(1));
assert.equal(2, [1,2,3].indexOf(3));
});
});
});
如果我在控制台中键入mocha,测试会起作用,但IDE会在“describe”和“it”的行中显示警告,因为它表示该变量尚未声明(“未声明的变量”)。
我想知道我应该怎么做这些测试以避免警告。
感谢。
答案 0 :(得分:2)
在cloud9中,您可以在文件顶部添加全局变量提示作为注释,它将删除警告。 e.g。
**/* global describe it before */**
var expect = require('chai').expect;
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when the value is not present', function(){
expect(true).to.equal(true);
})
})
})
答案 1 :(得分:0)
这是因为mocha
“可执行文件”将您的测试包含在使用mocha函数(require
和describe
)所需的it
中。查看mocha
目录中的_mocha
和node_modules/mocha/bin
。
另一方面,cloud9
尝试使用纯node
可执行文件解析所有符号,因此您必须手动require
一切。