Angular2依赖性Inejction和单元测试

时间:2017-09-22 11:07:14

标签: angular unit-testing dependency-injection

我想问一下Angular4中的依赖注入如何以及如何在单元测试中使用模拟服务。

首先,我没有检查任何Angular2测试框架,此时,我想更多地了解一般概念。

为什么Angular中的DI被称为DI?

在要注入的构造函数中列出服务时,必须导入对该文件的引用。

当您在提供商中注册服务时,它只是一个类名。我在这里看不到Interface-Class配对的任何可能性。

我无法抗拒,但我认为这种行为与静态类没有区别。

以某种方式模拟单元测试服务的技术是什么?

非常感谢所有投入:)

1 个答案:

答案 0 :(得分:0)

以某种方式模拟单元测试服务的技术是什么?

在测试平台中声明服务后,您可以将服务注入测试。一个例子:

it('should mock videos', inject([VideoService], (videoService: VideoService) => { 
    videos = [
        { id: 0,  name: 'Superman' },
        { id: 1, name: 'Superman part 2' }
      ]
    spyOn(videoService, 'videos').and.returnValue(videos); 
    fixture.detectChanges();
    expect(component.getVideoOne()).toContain(Superman);

  });