Я не могу найти пример для следующей проблемы. У меня есть модульный тест для моего состояния NGXS:
describe('Project store', () => {
let store: Store;
let projectService: ProjectService;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NgxsModule.forRoot([ProjectState])]
}).compileComponents();
projectService = new ProjectService(); // error: needs httpClient
store = TestBed.get(Store);
}));
it('should load projects', () => {
const EXPECTED_PROJECTS = [
{
"id": "1",
"description": "abc"
},
{
"id": "1",
"description": "abc"
}
] as Project[];
spyOn(projectService, 'loadProjects').and.returnValue(EXPECTED_PROJECTS);
const expected: ProjectStateModel = {
loadedProjects: EXPECTED_PROJECTS,
createdProjects: []
};
store.dispatch(new LoadProjects());
const actual = store.selectSnapshot(ProjectState.getState);
expect(actual).toEqual(expected);
});
});
Как мне шпионить за ProjectService
, когда ему самому нужен httpClient
?
Я нашел примеры того, как сделать тестслужба, которая нуждается в httpClient
, но теперь о том, как смоделировать службу, которая нуждается в клиенте.
Теперь я знаю, что могу написать сам макет службы, но я пытаюсь выяснить, может ли этобыть сделано с использованием жасминовых шпионов.