What is the difference between
jasmine.createSpy(\'someMethod\')
And
spyOn(someObject, \'someMethod\') >
The difference is that you should have a method on the object with spyOn
const o = { some(): { console.log('spied') } };
spyOn(o, 'some');
while the mock method is created for your with createSpy()
:
const o = {};
o.some = jasmine.createSpy('some');
The advantage of the spyOn
is that you can call the original method:
spyOn(o, 'some').and.callThrough();
o.some(); // logs 'spied'
And as @estus says the original method is restored after the test in case of spyOn
. This should be done manually when it's reassigned with.