Я создал тестовую среду для шуток.Он очень близко основан на их официальных документах .
. Я устанавливаю несколько значений в конструкторе, которые я хотел бы сделать доступными для тестов, которые используются в среде.(См. this.foo = bar
).
Конверт тестирования:
// my-custom-environment
const NodeEnvironment = require('jest-environment-node');
class CustomEnvironment extends NodeEnvironment {
constructor(config, context) {
super(config, context);
this.testPath = context.testPath;
this.foo = 'bar'; // Trying to access
}
async setup() {
await super.setup();
await someSetupTasks(this.testPath);
this.global.someGlobalObject = createGlobalObject();
}
async teardown() {
this.global.someGlobalObject = destroyGlobalObject();
await someTeardownTasks();
await super.teardown();
}
runScript(script) {
return super.runScript(script);
}
}
module.exports = CustomEnvironment;
Я запускаю свои тесты, используя эквивалент:
jest --env ./tests/<testing-env>.js
Где я могу получить доступ this.foo
в моих тестах, которые тестируются в этой тестовой среде?
describe('Sample Test', () => {
it('this.foo = bar', () => {
expect(this.foo).toBe('bar');
});
});
Я пытался заменить обе функции стрелок на форматы функций es5 (надеясь, что this
будет в области видимости), но безуспешно.
Как я могу получить свойства класса из моей среды тестирования из моих тестов в этой среде?