2017-01-27 48 views
0

我需要模擬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/> 
    }) 
}) 

回答

1

這個怎麼樣?

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(); 
     }) 
    }) 
+0

爲你做上面的回答工作? – anoop