Mic*_*ant 7 javascript mocha.js chai
我的例子有
let resort30 = new Resort('Alta');
Run Code Online (Sandbox Code Playgroud)
在文件的顶部,然后在测试用例中使用它,即
let alta = new Visit(resort30, '03/01/2000'); // Note this is before any describe
Run Code Online (Sandbox Code Playgroud)
这样可行。但是,如果我在所有s 之内和之前创建一个beforeor :beforeEachdescribeit
before(function () {
let resort30 = new Resort('Alta');
});
Run Code Online (Sandbox Code Playgroud)
并注释掉原来的声明,然后resort30不被识别
ReferenceError: resort30 is not defined
at Context.<anonymous> (test/ski_resorts_using_befores.spec.js:52:26)
Run Code Online (Sandbox Code Playgroud)
当我将该变量移至before或beforeEach让所有it的人都可以使用它时,如何才能使其工作?
我不希望它位于顶部,我希望它的范围仅限于描述,因为我计划在此文件中进行更多描述。即使有1个describe,我也希望能够使用beforebeforeEach`来创建我想要创建的变量和对象。
let仅在已声明的作用域或内部作用域中可见。这就是为什么它在其他范围内不被认可的原因。要拥有某种全局变量,但作用域仅限于块,describe()您需要在块的顶部声明它并在before()orbeforeEach()块中初始化:
describe('Test suite', () => {
let resort30 = null;
before(() => {
resort30 = new Resort('Alta');
});
it('should pass', () => {
console.log(resort30);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4012 次 |
| 最近记录: |