Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 如何使用道具测试反应组件?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何使用道具测试反应组件?

Javascript 如何使用道具测试反应组件?,javascript,reactjs,Javascript,Reactjs,我需要测试一个带有道具挂载的react组件,并正确呈现其内容,如段落和div。我的代码可以在下面或下面的 我试着用一个默认的道具来测试它,但是没有成功 import React from 'react'; import test from 'tape'; import {mount} from 'enzyme'; test('testing', t => { t.doesNotThrow(() => { wrapper = mount(<App2 txt={

我需要测试一个带有道具挂载的react组件,并正确呈现其内容,如段落和div。我的代码可以在下面或下面的

我试着用一个默认的道具来测试它,但是没有成功

import React from 'react';
import test from 'tape';
import {mount} from 'enzyme';


test('testing', t => {


  t.doesNotThrow(() => {
    wrapper = mount(<App2 txt={ok}/>);
  }, 'Should mount');


  t.end();
});
这是我的道具组件

import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
import App from './index'

export default class App2 extends Component {
  constructor() {
    super();
    this.state = {
      name: 'React'
    };
  }

  render() {
    const {txt}=this.props
    return (
      <div>
        <p>hi {txt}</p> 
     </div>
    );
  }
}
以及提供支撑的外部部件

import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
import App2 from './app2'

class App extends Component {
  constructor() {
    super();
    this.state = {
      name: 'React'
    };
  }

  render() {
    return (
      <div>
        <Hello name={this.state.name} />
        <p>
          Start editing to see some magic happen :)
        </p>
        <App2 txt={this.state.name}/>
      </div>
    );
  }
}

render(<App />, document.getElementById('root'));

因此,您可以自己提供属性,并确保其与属性一起呈现:

test('test your component', () => {
  const wrapper = mount(<App2 txt={'michaelangelo'} />);

  expect(wrapper.find('p').text()).toEqual('hi michaelangelo');
});
您不应该像那样测试和html元素,而是测试您传递的道具,以及它们在正确的位置(即在p标记中)呈现的道具