更改检测之前调用创建的间谍



我想在触发更改检测之前调用创建的spy方法。这是我的模拟课。

const stubStudentService: Pick<StudentsCrudService, keyof StudentsCrudService> =
{
getAllStudents: jasmine
.createSpy('getAllStudents')
.and.returnValue(of(studentPayload)),
...other methods
};

如何在fixture.detectChanges()之前将其称为getAllStudents

beforeEach(() => {
fixture = TestBed.createComponent(StudentsListComponent);
component = fixture.componentInstance;
<-- want to call that spy here --->
fixture.detectChanges();
});

因为这个问题,我想这么做。但无法根据我的模拟服务找出如何更改解决方案https://stackoverflow.com/questions/69989284/...

您需要在此处使用TestBed.inject

beforeEach(() => {
TestBed.configureTestingModule({
// ...
providers: [
{
provide: StudentsCrudService,
useValue: stubStudentService,
},
],
});
});
beforeEach(() => {
fixture = TestBed.createComponent(StudentsListComponent);
component = fixture.componentInstance;
const studentsCrudService = TestBed.inject(StudentsCrudService);
// spyOn(studentsCrudService, 'getAllStudents')...;
fixture.detectChanges();
});

最新更新