How to Cast an Injected Service as a Mock in Angular Unit Tests
I've been meaning to write this for a while. Normally in my Angular unit tests, I set up my service mocks and then let dependency injection treat them as if they're the real thing. But sometimes you'll need to cast a service mock as a spy so you can do things like reset the calls it's made. And it's one of those things I always have to think back and remember "How did I do that last time?".
Here's an example of how:
const mockScoreAdminService = TestBed.inject(ScoreAdminService) as jasmine.SpyObj<ScoreAdminService>;
mockScoreAdminService.processScores.calls.reset();
This code casts the service mock, which is treated as the real service type, to a Jasmine spy object. It then resets the calls made to the processScores method to zero.
I hope this helps someone!
Comments
Post a Comment