问题描述
我想知道是否有一种方法可以将一些黄瓜场景包装在与 mocha 相同的上下文中,以便使用某个钩子,例如 beforeAll,
before(() => {
this will run once beforeAll
});
it('01. example',() => {
do something
});
context('05. Forget password Tests',() => {
before(() => {
this will run once beforeAll
});
it('05-1. should get an error when no email is provided',() => {
do somthing
});
)}
由于替代选项是使用 before 和标签,但这将类似于 beforeEach 并且它将在每个场景之前运行,上面的场景显示 to before hook 第一个将在上下文之前运行一次,第二个将在所有它之前运行一次上下文中的块,这就是我想在黄瓜中实现的目标。
解决方法
每当您开始使用黄瓜功能进行编程时,您总是会做错事。您应该通过多次调用黄瓜(很少需要)在特征上方编程,或者通过从步骤定义调用辅助方法在黄瓜下方编程。
您永远不应该试图让事情在场景之间保持不变,或者使用一个场景来设置另一个场景的状态。走这条路会导致一套非常脆弱的测试,难以维护和优化。而是遵循标准的黄瓜方法,让每个场景/测试都以干净的方式开始和结束。