2017-01-27 5 views
0

Мне нужно Mock 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