Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
36
rated 0 times [  42] [ 6]  / answers: 1 / hits: 44816  / 9 Years ago, thu, october 15, 2015, 12:00:00

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');

More From » jasmine

 Answers
11

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.


[#64726] Tuesday, October 13, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
dusty

Total Points: 739
Total Questions: 97
Total Answers: 85

Location: Angola
Member since Wed, Apr 13, 2022
2 Years ago
;