Reactjs 反应&;酶:为什么不是';在每一次工作之前你都做了什么?
我正在编写第一个React测试,遇到了一个问题,我的Reactjs 反应&;酶:为什么不是';在每一次工作之前你都做了什么?,reactjs,testing,jestjs,enzyme,Reactjs,Testing,Jestjs,Enzyme,我正在编写第一个React测试,遇到了一个问题,我的beforeach语句都不起作用。这是我的测试文件: import React from 'react'; import { shallow } from 'enzyme'; import Home from '../components/Home'; import IntroText from '../components/IntroText'; import Form from '../components/Form'; describe
beforeach
语句都不起作用。这是我的测试文件:
import React from 'react';
import { shallow } from 'enzyme';
import Home from '../components/Home';
import IntroText from '../components/IntroText';
import Form from '../components/Form';
describe('<Home />', () => {
beforeEach(() => {
const wrapper = shallow(<Home />);
});
it('renders the IntroText component', () => {
expect(wrapper.find(IntroText).length).toBe(1);
});
it('renders the Form component', () => {
expect(wrapper.find(Form).length).toBe(1);
});
});
当测试运行时,我遇到此错误:
ReferenceError: wrapper is not defined
我遗漏了什么?如果在每个作用域之前定义了
范围内的包装常量,请将其移到外部,如下所示:
import React from 'react';
import { shallow } from 'enzyme';
import Home from '../components/Home';
import IntroText from '../components/IntroText';
import Form from '../components/Form';
describe('<Home />', () => {
let wrapper;
beforeEach(() => {
wrapper = shallow(<Home />);
});
it('renders the IntroText component', () => {
expect(wrapper.find(IntroText).length).toBe(1);
});
it('renders the Form component', () => {
expect(wrapper.find(Form).length).toBe(1);
});
});
谢谢,非常感谢!这是范围的经典示例!如果您仍然没有定义:-我在测试中需要的对象上尝试了这种方法(它是在beforeach()中定义的)&然后在测试语句中引用/使用,但仍然没有定义。即使使用this.myobject
approach^^。我阅读了Jest文档,看起来它们似乎在导入下方的全局/顶级范围中定义了对象本身,然后在beforeach()中指定它是什么
然后可以在测试语句中使用它。
import React from 'react';
import { shallow } from 'enzyme';
import Home from '../components/Home';
import IntroText from '../components/IntroText';
import Form from '../components/Form';
describe('<Home />', () => {
let wrapper;
beforeEach(() => {
wrapper = shallow(<Home />);
});
it('renders the IntroText component', () => {
expect(wrapper.find(IntroText).length).toBe(1);
});
it('renders the Form component', () => {
expect(wrapper.find(Form).length).toBe(1);
});
});
import React from 'react';
import { shallow } from 'enzyme';
import Home from '../components/Home';
import IntroText from '../components/IntroText';
import Form from '../components/Form';
describe('<Home />', function() {
beforeEach(function() {
this.wrapper = shallow(<Home />);
});
it('renders the IntroText component', function() {
expect(this.wrapper.find(IntroText).length).toBe(1);
});
it('renders the Form component', function() {
expect(this.wrapper.find(Form).length).toBe(1);
});
});