当前位置: 首页 > 知识库问答 >
问题:

警告:失败的道具类型:为“sportsMockUpStandard”提供的道具“rrrr”无效`

谭兴学
2023-03-14

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

>

  • 我正在尝试为jsx文件编写测试用例
  • 在这方面,我能够通过proptypes
  • 但不是在我顺利通过的地方
  • 我在运行测试用例时出错
  • 下面提供我的错误、测试用例和代码
  • 警告:失败的道具类型:提供给sportsMockUpStandard的无效道具rrrr
  • 我不知道该怎么做
  • 发生在这次活动中
  • 你能告诉我应该如何把它放在我的测试用例中吗

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

    警告:失败的道具类型:提供给sportsMockUpStandard的无效道具rrrr

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

    ```

  • 共有1个答案

    梁俊智
    2023-03-14

    首先,请查看您收到的警告:

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

    这表明您提供给sportsMockUpStandardrrrrr属性有问题。让我们来看一看。在sportsMockUpStandard中,您有

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

    所以它需要一个函数或一个对象。但是,在测试用例中,您创建了一个sportsMockUpStandard元素,其中rrrr是一个数组:

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

    只需添加React。道具类型。数组,您应该很好。

    更新:我真的建议从了解摩卡的工作原理开始。您当前的测试不会检查任何内容,但只是在do()执行时完成。当你使用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组件应该会容易得多。

     类似资料: