如何使用角度检视器测试嵌套依赖关系

问题描述 投票:0回答:1

我有一个角度组件正在使用依赖于另一个服务(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();
   });
});

相当标准,但我无法弄清楚如何模拟服务。谁能帮忙??

angular unit-testing jasmine angular-directive
1个回答
0
投票

尝试以下操作:

const createComponent = createComponentFactory({
  component: YourComponentUnderTest,
  mocks: [YourService1],
  imports: []
});

然后在it测试用例中,您应该可以调用:

// let's first instruct a mocked service
component.get(YourService1).somOtherFunction.andReturn('mocked/stubbed answer');

Source Blog Post

© www.soinside.com 2019 - 2024. All rights reserved.