【发布时间】:2017-11-07 23:20:29
【问题描述】:
我在将 mocha 测试更改为 jest 测试时遇到问题。
我有三个包含三个类的测试文件:FirstTestGroup、SecondTestGroup 和 ThirdTestGroup,每个都有一个静态执行方法,其中包含一些测试,如下所示:
class FirstTestGroup {
execute(params) {
describe('some tests', function tests() {
it('one test', () => {
// uses params
});
...
});
...
}
}
这些执行方法中的每一个都使用相同的参数。这些参数是在调用前异步创建的,如下所示。
describe('My Tests', function testSuite() {
let params;
before('param creation', async function asyncFunc() {
// creates params asynchronously
});
it('should pass all', () => {
FirstTestGroup.execute(params);
SecondTestGroup.execute(params);
ThirdTestGroup.execute(params);
});
});
it('should pass all', ...) 是必需的,因为 describe 中的所有内容都会立即运行,因此如果没有它,params 将作为 null 传递。这在 mocha 中有效,因为“它”可以嵌套,但显然这不是开玩笑的情况。
我可以在每次运行测试组之前调用 beforeAll(相当于开玩笑的 before),但我不想这样做,因为这似乎效率低下。
我还可以在定义 describe('My Tests', ...) 之前将代码放在 before 调用中。这似乎是错误的,因为这应该只是描述的一部分。
我在 jest 文档中找不到任何可以帮助我解决此问题的内容。
我做错了吗?有没有办法使用玩笑来实现这一点,即使我必须重组测试?但我想将测试保存在不同的文件中。
这是我在这里的第一个问题,所以请告诉我是否需要更多信息,因为我不习惯在这里写作。
【问题讨论】:
标签: jestjs