我需要模拟getZvalue所以,当我根据z值做一个浅的时候,我会尝试渲染不同的东西。我该如何测试呢。以下是示例代码。 我可以侦察这个方法来返回一个值
class AbcComponent extends React.Component{
render(){
const z= this.getZValue();
return <div>{z}</div>
}
getZValue(){
//some calculations
}
}
describe('AbcComponent',()=>{
it('Test AbcComponent',()=>{
const wrapper= shallow<AbcComponent/>
})
})
答案 0 :(得分:2)
这个怎么样?
import { spy } from 'sinon';
describe('AbcComponent',()=> {
it('Test AbcComponent',()=> {
spy(AbcComponent.prototype, "getZValue");
const wrapper= shallow<AbcComponent/>
expect(AbcComponent.prototype.getZValue.callCount).to.equal(1);
AbcComponent.prototype.getZValue.restore();
})
})
除此之外,您可以使用以下返回值进行测试,
import { stub } from 'sinon';
describe('AbcComponent',()=> {
it('Test AbcComponent',()=> {
stub(AbcComponent.prototype, "getZValue").returns(10);
const wrapper= shallow<AbcComponent/>
expect(AbcComponent.prototype.getZValue.callCount).to.equal(1);
AbcComponent.prototype.getZValue.restore();
})
})