2016-06-08 56 views
0

我怎麼能禁止這種警告開玩笑這一ReactJS組件:玩笑警告缺少的道具,當它是有

警告:無法propType:必需道具post未在 MyShowOnePost規定。

我打電話給React組件TestUtils.renderIntoDocumentpost道具。

MyShowOnePost-test.js

describe('MyShowOnePost',() => { 

    const instance = TestUtils.renderIntoDocument(
     <MyShowOnePost post={post} /> 
    ); 

MyShowOnePost.js

export default class MyShowOnePost extends React.Component { 
    render() { 
    return (
     <div> 
     One Post: {this.props.post.content} 
     </div> 
    ); 
    } 
} 

MyShowOnePost.propTypes = { 
    post: React.PropTypes.object.isRequired 
}; 

回答

1

file--你需要一些嘲笑這些你的道具將不會在您的測試可用時尚。 這是我怎麼在寫玩笑測試,以測試組件,它已經爲我的團隊運作良好(注意,我們所使用的酶庫):

MyShowOnePost-test.js

import { mount } from 'enzyme'; 
import MyShowOnePost from './MyShowOnePost' 

describe('MyShowOnePost',() => { 
    const fakeProps = { post: 'I'm a post!' }; 

    it('renders the post content',() => { 
     const component = mount(<MyShowOnePost post={fakeProps.post} />); 

     expect(component.containsMatchingElement(<div>One Post: {'I'm a post!'}</div>).toBeTruthy(); 
    }); 
}); 

這已經相當簡單和乾淨。我們確實使用酶庫來裝載組件,如果您想使用快照進行測試,那將是另一種方法來仔細檢查組件是否正在裝載並正確呈現。