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。
这告诉您提供给rrrr
的sportsMockUpStandard
属性有问题。因此,让我们来看一下。在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组件应该会容易得多。