如何在角度2+中避免单元测试的依赖性

时间:2017-10-06 08:31:58

标签: angular unit-testing testing

我看到很多关于如何在角度2+中单元测试简单组件的示例,但是当涉及到测试使用服务的组件时,维护测试床提供者和导入变成了一场噩梦。 我怎么能避免它?

例如我有myComponents,他使用myService,他使用HttpClient。 要测试myComponent,我必须为myService和HttpClient设置提供程序。 如果我将其他服务添加到myService的构造函数中,我将必须编辑使用此服务的cmoponents的所有测试页。

我不能告诉testbed获取这些模块的默认依赖项吗?

1 个答案:

答案 0 :(得分:1)

问题源于错误的测试方法。单元测试是关于测试单个单元。

在这种情况下

  

myComponents,使用myService,使用HttpClient。要测试myComponent,我必须为myService和HttpClient设置提供程序。

它测试的是myComponent单位。这意味着任何其他单位都应该被模拟或存根,包括myService

虽然这个

  

获取这些模块的默认依赖项

被认为不是单位,而是整合/ e2e测试。