Я очень новый Жасмин. Мой сценарий может быть простым, но я не уверен, как покрыть контрольный пример для ngInit для класса ниже. Может ли кто-нибудь помочь мне,
export class Component1 implements OnInit {
details$: Observable<any>;
name: string;
error: string
constructor(private service1: Service1, private service2: Service2) { }
ngOnInit() {
this.service1.service1Subject.subscribe( info => {
if(info['url']){
this.details$ = this.service2.get(info['url'])
this.details$.subscribe(
(info) => { this.name = info['name']};
(error) => { this.erro = error['error']};
);
}
});
}
}
Контрольный пример:
describe('Component1', () => {
let component: Component1;
let fixture: ComponentFixture<Component1>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [Component1],
imports: [
HttpClientTestingModule, CommonModule
],
providers: [Service1, Service2]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(Component1);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should call Get Data', () => {
const service2: Service2 = TestBed.get(Service2);
const spy = jest.spyOn(service2, 'get').mockImplementation(() => {
return {
info : [...],
name : ''
}
});
component.ngOnInit();
expect(spy).toHaveBeenCalled();
});
});
Проблема здесь в том, что я не уверен, как издеваться над объектом service1, Rx JS. Пожалуйста, кто-нибудь, помогите мне.