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


我正在尝试为jsx文件编写测试用例
在此我可以传递原型...
但不是我适当地通过原型的地方...
运行测试用例时出现错误。
在下面提供我的错误,测试用例和代码...
警告: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'}]}


/>);

           // shallowRenderer.render(<sportsMockUpStandard

            //layout= {{id: 100, text: 'hello world'}}  />);

         console.log("here2");

    });

});


```

最佳答案

首先查看获得的警告:


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


这告诉您提供给rrrrsportsMockUpStandard属性有问题。因此,让我们来看一下。在sportsMockUpStandard中,

rrrr: React.PropTypes.oneOfType([
    React.PropTypes.func,
    React.PropTypes.object
]),


因此,它期望一个函数或一个对象。但是,在测试案例中,您将创建一个sportsMockUpStandard元素,其中rrrr是一个数组:

rrrr= {[{rrrr},{id: 100, text: 'hello world'}]}


只需添加React.PropTypes.array,就可以了。

更新:
我真的建议从了解Mocha的工作原理入手。您当前的测试不会检查任何内容,只是在执行done()时完成。当您使用chai时,常规设置如下所示:

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;
}


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

describe('addOne', () => {
  it('should take a number and increment it by one', () => {
    var number = 5;
    var newNumber = addOne(number);
    expect(newNumber).to.equal(6); // Success!!
  })
})


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

09-16 09:24