How to mock/replace getter function of object with Jest?

前端 未结 3 1278
小鲜肉
小鲜肉 2021-02-03 17:44

In Sinon I can do the following:

var myObj = {
    prop: \'foo\'
};

sinon.stub(myObj, \'prop\').get(function getterFn() {
    return \'bar\';
});

myObj.prop; /         


        
3条回答
  •  被撕碎了的回忆
    2021-02-03 18:15

    OMG I've been here so many times. Finally figure out the proper solution for this. If you care about spying only. Go for @Franey 's answer. However if you actually need to stub a value for the getter this is how you can do it

    class Awesomeness {
      get isAwesome() {
        return true
      }
    }
    
    describe('Awesomeness', () => {
      it('is not always awesome', () => {
        const awesomeness = new Awesomeness
        jest.spyOn(awesomeness, 'isAwesome', 'get').mockReturnValue(false)
    
        expect(awesomeness.isAwesome).toEqual(false)
      })
    })
    

提交回复
热议问题