首页 > 解决方案 > 类型错误:在 BeforeEach 中设置 this.variable 时,无法设置未定义的属性“变量”

问题描述

我是 Javascript 的新手。我有以下代码完全按照https://stackoverflow.com/a/58785118

  describe('tests', () => {
    beforeEach(async () =>
      Promise.resolve('foo').then(result => {
        this.dom = result;
      })
    );

    it('works', () => {
      console.log(this.dom); // => foo
    });
  });

运行测试时,它抱怨

1) tests
       "before each" hook for "works":
     TypeError: Cannot set property 'dom' of undefined

我错过了什么吗?

标签: javascriptunit-testingmocha.js

解决方案


最简单的方法是删除使用this并在describe()回调范围内声明一个变量:

  describe('tests', () => {
    let dom;
    beforeEach(async () =>
      Promise.resolve('foo').then(result => {
        dom = result;
      })
    );

    it('works', () => {
      console.log(dom); // => foo
    });
  });

推荐阅读