首页 > 解决方案 > 检查组件中是否存在某个类或某个节点的最小可重现示例?不是快照测试

问题描述

嗨,我有一个组件 tripDetails 及其关联的测试文件

import React from 'react';
import { shallow } from 'enzyme';
import toJSON from 'enzyme-to-json';
import tripDetails from './index';

const defaultProps = [
  {
    tripLinkText: 'Book an airport transfer'
  }
 {
    tripLinkText: 'Book an Hotel transfer'
  }
]

describe('trip card section', () => {
  it('testing', () => {
    const wrapper = shallow(<tripDetails {...defaultProps} />);
    expect(toJSON(wrapper)).toMatchSnapshot();
  });
});

但我需要检查是否存在某些元素。我不想要快照测试,除了我能测试什么?如果是这样,我将如何写

也试过这个

import React from 'react';
import { expect } from 'chai';
import { render } from 'enzyme';

import Foo from './Foo';

describe('<Foo />', () => {
  it('renders three `.foo-bar`s', () => {
    const wrapper = render(<Foo />);
    expect(wrapper.find('.foo-bar')).to.have.lengthOf(3);
  });

但它给出的错误 MobX 注入器:存储“上下文”不可用!确保它是由某个 Provider 提供的

标签: reactjstestingjestjstestcase

解决方案


1.要在渲染组件中查找元素,您需要find在包装器上使用运算符。
2. 使用 shallow 来渲染你的组件。

let wrapper  = shallow(<Component />);
const element = wrapper.find('.yourClass');

希望能帮助到你!!


推荐阅读