Cloud9中的Mocha测试中的“未声明的变量”警告

时间:2012-11-27 22:51:35

标签: javascript unit-testing node.js mocha cloud9-ide

我是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”的行中显示警告,因为它表示该变量尚未声明(“未声明的变量”)。

我想知道我应该怎么做这些测试以避免警告。

感谢。

2 个答案:

答案 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函数(requiredescribe)所需的it中。查看mocha目录中的_mochanode_modules/mocha/bin

另一方面,cloud9尝试使用纯node可执行文件解析所有符号,因此您必须手动require一切。