Juraj Jakubov
Juraj Jakubov

Reputation: 261

Mocking observable getters and setters in jasmine

Lets say I have some state service in angular

export class StateService {
 private _someProperty: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);

    set someProperty(value: boolean) {
       this._someProperty.next(value);
    }

    get someProperty() {
        return this._someProperty.value;
    }

    get someProperty$() {
        return this._someProperty.asObservable();
    }
}

How can this be mocked correctly in jasmine? Probably something like this but I dont know how to mock these Behaviour Subject getters and setters.

const stateServiceMock = jasmine.createSpyObj('StateService', {
    ...
});

Upvotes: 0

Views: 1715

Answers (1)

belzebubele
belzebubele

Reputation: 86

of() from Rxjs will return an observable where the given input value is "observed" immediatly.

so you can

spyOnProperty(stateService, 'someProperty$').andReturn(of(false));

dont forget to import "of" from rxjs

mocking with jasmine:

rxjs

Upvotes: 0

Related Questions