繁体   English   中英

如何使用Enzyme对React中的select元素进行聚焦进行单元测试?

[英]How to unit test if a select element in React has focus using Enzyme?

我在React中有一个下拉组件,它呈现带有标签和一些选项的select元素。 这是我的测试的样子:

import React from 'react';
import { shallow, mount } from 'enzyme';
import Dropdown from './Dropdown';

describe('Dropdown', () => {
  it('should be focused on label click', () => {
    const wrapper = mount(
      <div>
        <label htmlFor={'dropdownId'}>Sort by: </label>
        <Dropdown
          id="dropdownId"
          options={[
            { key: '', display: 'Please select a value' },
            { key: 'NJ', display: 'New Jersey' },
            { key: 'NY', display: 'New York' },
          ]}
        />
      </div>,
    );

    const dropdownLabel = wrapper.find('label');
    const dropdownSelect = wrapper.find(Dropdown);

    dropdownLabel.simulate('click', {});
    expect(dropdownSelect.is(':focus')).toBe(true);
  });
});

我正在尝试模拟标签上的单击以测试select元素是否具有焦点,但是得到以下错误: TypeError: Enzyme received a pseudo-class CSS selector (':focus') that it does not currently support in tests.webpack.js

我正在使用PhantomJS 2.1.1

有没有办法复制测试的目的,而不使用CSS伪选择器?

谢谢。

您应该考虑使用不同的单元测试套件。

https://github.com/airbnb/enzyme/issues/703

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM