Javascript 使用嵌套的描述块调用beforeach和afterEach
我试图在我正在编写的jasmine测试套件的每个嵌套描述之前和之后调用一些逻辑 我现在有这样的事情:Javascript 使用嵌套的描述块调用beforeach和afterEach,javascript,jasmine,Javascript,Jasmine,我试图在我正在编写的jasmine测试套件的每个嵌套描述之前和之后调用一些逻辑 我现在有这样的事情: descripe('Outer descripe',function(){ beforeach(函数(){ 登录(); someOtherFunc(); }); 在每个(函数()之后){ 注销(); }); 描述('内部描述',函数(){ 它('规范A',函数(){ 期望(真),期望(真); }); 它('spec B',函数(){ 期望(真),期望(真); }); }); }); 我在我的内
descripe('Outer descripe',function(){
beforeach(函数(){
登录();
someOtherFunc();
});
在每个(函数()之后){
注销();
});
描述('内部描述',函数(){
它('规范A',函数(){
期望(真),期望(真);
});
它('spec B',函数(){
期望(真),期望(真);
});
});
});
我在我的内部描述中为每个it
调用了beforeach
和afterEach
之前的和之后的中找到了我的函数。我只希望这些被称为每一个内部描述我在外部的一次
这是可能的吗?我认为你应该使用“之前”和“之后”来描述内部的规范。以下摘自茉莉花网站:
beforeAll函数仅在中的所有规范之前调用一次
descriple运行,并且在所有规范之后调用afterAll函数
结束。这些功能可用于加快测试套件的速度
昂贵的安装和拆卸
然而,在使用之前和之后都要小心!因为他们不是
在规格之间重置,很容易在规格之间意外泄漏状态
你的规格,使他们错误地通过或失败
为了实现这一点,我定义了一个公共函数,然后在每个嵌套的描述的之前的之后的中引用它
describe('Wrapper', function() {
var _startup = function(done) {
login();
window.setTimeout(done, 150);
};
var _shutdown = function() {
logout();
};
describe('Inner 1', function() {
beforeAll(_startup);
afterAll(_shutdown);
});
describe('Inner 2', function() {
beforeAll(_startup);
afterAll(_shutdown);
});
describe('Inner 3', function() {
beforeAll(_startup);
afterAll(_shutdown);
});
});
这似乎是可用的最干净的解决方案。谢谢,但我已经看过此文档,在我的场景中没有帮助。我知道这已经晚了4年,但对于未来的读者,@Ram Pasala所说的正是我们需要的。或者,您可以将放在父描述之外的每个之前。