Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用酶对React中的选定元素进行单元测试?_Javascript_Unit Testing_Reactjs_Phantomjs_Enzyme - Fatal编程技术网

Javascript 如何使用酶对React中的选定元素进行单元测试?

Javascript 如何使用酶对React中的选定元素进行单元测试?,javascript,unit-testing,reactjs,phantomjs,enzyme,Javascript,Unit Testing,Reactjs,Phantomjs,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 wrapp

我在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);
  });
});
从“React”导入React;
从“酶”导入{shall,mount};
从“./Dropdown”导入下拉列表;
描述('下拉列表',()=>{
它('应该关注标签点击',()=>{
常量包装器=装入(
排序方式:
,
);
const dropdownlab=wrapper.find('label');
const dropdownSelect=wrapper.find(下拉菜单);
模拟('click',{});
expect(dropdownSelect.is(':focus')).toBe(true);
});
});
我试图模拟单击标签来测试select元素是否具有焦点,但得到以下错误:
TypeError:Enzyme收到了一个伪类CSS选择器(“:focus”),它当前在测试中不支持该选择器。webpack.js

我使用的是PhantomJS版本
2.1.1

有没有一种方法可以在不使用CSS伪选择器的情况下复制测试的目的


谢谢。

Ezyme 3.10支持一些伪选择器,包括focus