How can I spy on a getter property using jasmine?
var o = { get foo() {}, };
spyOn(o, 'foo').and.returnValue('bar'); // Doesn't work.
This also does not work AFAICT:
spyOn(Object.getOwnPropertyDescriptor(o, 'foo'), 'get').and.returnValue('bar');
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.