How can I spy on a getter property using jasmine?
jasmine, javascript
Solution
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.
Problem
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'); ```