注入每个测试,在全局设置中创建一个实例

时间:2019-07-17 15:15:48

标签: jestjs

我想将我在全局设置中创建的实例注入到每个测试中。

例如,我的目标是a.test.js

describe('a', () => {
    it('foo is avaialble in this test', () => {
        expect(global.foo).toBeTruthy();
    })
});

所以我尝试了这个,我添加到了jest.config.js


module.exports = {
    globalSetup: './setup.js',
  };

我的setup.js是实例化实例的位置:

const Foo = require('./Foo');

module.exports = async function() {
    const foo = new Foo();
    global.foo = foo;
}

如何使此foo在所有测试中都可以全局使用?

我想使用自定义环境,并尝试添加到配置中:

testEnvironment: './myenv.js',

然后我将myenv.js设置为:

const NodeEnvironment = require('jest-environment-node');


class MyEnv extends NodeEnvironment {
    constructor(config) {
        super(config);
    }

    async setup() {
        await super.setup();

        this.global.foo = global.foo; // HOW_TO_GET_FOO_FROM_SETUP?;
    }
}

module.exports = MyEnv;

但是,我无法访问在foo中创建的globalSetup实例。有人有什么想法吗?

0 个答案:

没有答案