Javascript nodejs在testcase内部运行eval

Javascript nodejs在testcase内部运行eval,javascript,node.js,mocha.js,eval,chai,Javascript,Node.js,Mocha.js,Eval,Chai,我需要在nodejs的mocha测试中运行一些eval代码,但我一直遇到一个问题。我不能在测试中做任何var声明。所以,如果我有这样的东西: it("7.Variable Assignment", function(done){ eval("var testVar = 1;"); expect(testVar).eql(1); done(); }); 测试返回: 7.Variable Assignment: ReferenceError: testVar is

我需要在nodejs的mocha测试中运行一些eval代码,但我一直遇到一个问题。我不能在测试中做任何var声明。所以,如果我有这样的东西:

it("7.Variable Assignment", function(done){
    eval("var testVar = 1;");
    expect(testVar).eql(1);
    done();

});
测试返回:

   7.Variable Assignment:
 ReferenceError: testVar is not defined
  at eval (eval at <anonymous> (test/index.js:102:16), <anonymous>:1:1)
  at Context.<anonymous> (test/index.js:102:16)
考试通过了。关于如何解决这个问题有什么想法吗?
编辑:我需要在字符串中进行变量声明。

如果不能进行任何变量声明,并且必须使用eval,则可以直接测试eval的输出:

expect(eval("var testVar; testVar = 1; testVar")).eq(1);

这项测试的目的是什么?为什么不能在测试中声明变量?这显然是我真实测试的简化版本。我正在测试一个babel插件。嗯,用这么少的元素来回答是不明显的。是否可以直接将输出放入expect,如expectevaltestVar=1;。eq1?您不能在测试之外声明变量testVar吗?无论如何,不建议使用eval函数。谢谢您的反馈,但我需要以字符串形式声明变量。这是帮助回答您的问题的有用信息。。如果您必须使用eval,是这样吗?:expectevalvar testVar;testVar=1;testVar.eq1;
expect(eval("var testVar; testVar = 1; testVar")).eq(1);