Dav*_*e M 4 javascript jasmine ecmascript-6
为什么我们不只是更换beforeAll(function(){ let foo = 'test' })用let foo = 'test'?beforeAll如果第二种方式没问题,目的是什么?
顺便说一下,这是官方定义:在任何beforeEach函数或任何规范之前,beforeAll函数只对包含它的describe块执行一次.
函数beforeAll范围中的块和普通代码之间存在一些实质性差异describe.
beforeAll设置应该与afterAll拆卸相结合.
before*块中的错误并不重要,不会阻止规范列表的填充和规范的运行.describe块中的错误将导致空的规范列表.
before*和it块具有this当前规范的上下文,可以用作在块之间共享数据的推荐方式.它通常比父范围的普通变量更可取,因为这样就没有交叉污染测试的风险.describe函数没有这个上下文.但是,此方法与ES6箭头功能不兼容.
可能有Jasmine助手应该与Angular测试一起使用before*和it阻塞,例如在Angular测试中:
beforeAll(fakeAsync(() => {
asyncInitializationThatDoesntNeedDoneCallback();
}));
Run Code Online (Sandbox Code Playgroud)
如果它是一个应该为整个块定义的常量,那么它肯定可以在没有beforeAll:
describe('...', () => {
const foo = 'test'; // not let
...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |