2017-09-22 305 views
0

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

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

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

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

当您在提供者中注册服务时,它只是一个类名。我没有看到任何接口类配对的可能性。

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

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

非常感谢所有的输入:)

+0

你在问之前是否检查过https://docs.angularjs.org/guide/di和https://angine.io/guide/testing章节? SO是有帮助的社区,但没有任何研究的问题一般不受赞赏。关于DI,正在使用'ClassName'标记注入构造函数的东西本身不是类,它可以是类实例,另一个类或另一个类实例。 – estus

+0

是的,我做了一些研究,谷歌没有给我任何有趣的东西......提供的链接是以前版本的Angular。 –

+0

哦,对不起,错过了第二个。但我不仅对单元测试感兴趣,而且对DI一般也不感兴趣。在那个话题上,我真的没有找到任何东西,只是功能的基本描述。提供参考的东西可能是第一个有趣的东西,将看看它。 –

回答

0

什么会以某种方式嘲笑服务单元测试的TECHNIC?

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

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); 

    });