How can I spy on a getter property using jasmine?

前端 未结 6 1851
南笙
南笙 2020-12-14 06:02

How can I spy on a getter property using jasmine?

var o = { get foo() {}, };

spyOn(o, \'foo\').and.returnValue(\'bar\'); // Doesn\'t work.

6条回答
  •  北海茫月
    2020-12-14 06:15

    Since Jasmine 2.6, this has been possible with spyOnProperty. To spy on the accessors for the foo property, do:

    spyOnProperty(o, 'foo')
    

    This allows you to replace the set and/or get accessor functions for an accessor property with a spy function. You can specify or set or get only as a third argument:

    spyOnProperty(o, 'foo', 'get')
    

    If you are stuck using an earlier version and cannot upgrade for some reason, you may be able to merge the pull request that added this feature into your local copy of the code.

提交回复
热议问题