测试服务

当在Angular 2中测试服务时,我们采用了许多用于测试组件的相同技术和策略。 服务,类似组件,是具有我们想要验证的方法和属性的类。 数据是测试服务的主要重点 - 我们是否正确地获取,存储和传播数据。

服务测试策略

测试进行HTTP调用的服务时,我们不希望用真实请求访问服务器。这是因为我们想要将我们的服务的测试与任何其他外部故障点隔离开。我们的服务可能会工作,但如果API服务器失败或给出我们不期望的值,它可能给人的印象是我们的服务是失败的。此外,随着项目的增长和单元测试的数量的增加,运行大量的测试,HTTP请求将需要很长的时间,可能会给API服务器带来压力。因此,当测试服务时,我们将使用假请求模拟假数据。

注入依赖关系

像组件一样,服务通常需要依赖,Angular通过服务类的构造函数注入。由于我们在Angular的引导过程之外初始化这些类,我们必须自己显式注入这些依赖。这是通过使用TestBed配置测试模块传回所需的依赖项(如HTTP模块)来实现的。