Javascript 如何使用道具测试反应组件?
我需要测试一个带有道具挂载的react组件,并正确呈现其内容,如段落和div。我的代码可以在下面或下面的 我试着用一个默认的道具来测试它,但是没有成功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={
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标记中)呈现的道具