警告:propType失败:提供给`sportsMockUpStandard`的无效prop`rrrr`

时间:2016-03-18 04:25:44

标签: javascript jquery html reactjs mocha

https://gist.github.com/js08/dfeab2df8b68240297eb

  • 我正在尝试为jsx文件编写测试用例
  • 在这里,我能够通过proptypes ......
  • 但不是我通过proptypes的地方......
  • 我在运行测试用例时遇到错误..
  • 在下面提供我的错误,测试用例和代码......
  • 警告:propType失败:提供给rrrr的道具sportsMockUpStandard无效。
  • 不确定如何让它发挥作用..
  • 对此功能的谴责......
  • 你能告诉我如何把它放在我的测试用例中

    **error** 
    ---
     1) shallow renderer tests for sports-template-standard  should render correctly:
    

    警告:propType失败:提供给rrrr的道具sportsMockUpStandard无效。

    test cases
    ---
    
    
    describe('shallow renderer tests for sports-template-standard ', function() {
        let shallowRenderer = TestUtils.createRenderer();
        console.log("shallowRenderer" + JSON.stringify(shallowRenderer));
    
        it('should render correctly', () => {
    
           // var rightPanel ="some string";
            var layout ="some string";        
             var hasSidebar = function(){
                done();
        }
            console.log("here1");
          //  this.props.layout.rightPanel.exists = 'some value';
    
        shallowRenderer.render(<sportsMockUpStandard
    
            sidebar= {[{hasSidebar},{id: 100, text: 'hello world'}]} 
    

    /&GT);

               // shallowRenderer.render(<sportsMockUpStandard
    
                //layout= {{id: 100, text: 'hello world'}}  />); 
    
             console.log("here2");
    
        });
    
    });
    

    ```

1 个答案:

答案 0 :(得分:1)

通过查看您收到的警告开始:

  

警告:propType失败:提供的prop rrrr无效   sportsMockUpStandard。

这告诉您,您提供给rrrr的{​​{1}}属性出现了问题。那么让我们来看看。在sportsMockUpStandard你有

sportsMockUpStandard

所以它期待一个函数或一个对象。但是,在测试用例中,您创建了一个rrrr: React.PropTypes.oneOfType([ React.PropTypes.func, React.PropTypes.object ]), 元素,其中sportsMockUpStandard是一个数组:

rrrr

只需添加rrrr= {[{rrrr},{id: 100, text: 'hello world'}]} ,就可以了。

更新的 我真的建议首先了解Mocha的工作原理。您当前的测试不会检查任何内容,但只是在执行完()时完成。使用chai时,正常的设置是这样的:

React.PropTypes.array

所以假设你有一个功能:

describe('the thing you want to test', () => {
  it('should do something', () => {
    /* Run some code */
    expect(/*something*/).to.equal(/*something*/);
  })
})

然后您的测试将如下所示:

function addOne(number){
  return number + 1;
}

一旦掌握了基础知识,测试React组件应该会容易得多。