Представьте, что у меня есть служба с методом, который может или не может отправлять следующее значение субъекту. Примерно так:
@Injectable()
export class MyService {
public onChange: Subject<string> = new Subject();
check(send: boolean) {
if (send) {
this.onChange.next('hey!');
}
}
}
Я могу легко проверить случай с service.check(true)
- просто подпишитесь на onChange
, но как я могу проверить, что onChange.next()
в service.check(false)
НЕ БЫЛО вызвано?
edit / my-service.spec.ts
import { TestBed } from '@angular/core/testing';
import { MyService } from './my-service.service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
TestBed.configureTestingModule({ providers: [MyService] });
service = TestBed.get(MyService);
});
it('can load instance', () => {
expect(service).toBeTruthy();
});
it('should send notification with check(true)', () => {
service.onChange.subscribe(
msg => expect(msg).toEqual('hey!'),
fail
);
service.check(true);
});
it('should not send notification with check(false)', () => {
// ???? how to check that this.onChange.next() was not called?
service.check(false);
});
});