我有一个角度组件正在使用依赖于另一个服务(service2)的服务(service1)。
我该如何测试?我想模拟两种服务。
export class service2 {
public someFunction() {}
constructor() {}
}
export class service1 {
public somOtherFunction() {}
constructor(s: Service2) {
this.s.someFunction();
}
}
@Component({
selector: 'component',
providers: [Service1],
})
export class component {
constructor(private service:Service1) {
this.service.someOtherFunction();
}
}
我的测试台看起来像这样。
describe('component', () => {
let component: Spectator<component>;
const createComponent = createComponentFactory();
beforeEach(() => component = createComponent());
it('should create', () => {
expect(component).toBeTruthy();
});
});
相当标准,但我无法弄清楚如何模拟服务。谁能帮忙??
尝试以下操作:
const createComponent = createComponentFactory({
component: YourComponentUnderTest,
mocks: [YourService1],
imports: []
});
然后在it
测试用例中,您应该可以调用:
// let's first instruct a mocked service
component.get(YourService1).somOtherFunction.andReturn('mocked/stubbed answer');