如果提供等于 class,angular2 测试中的 useClass 字段是否有任何区别?
Does useClass field in angular2 test make any difference if equal class is provided?
我正在编写 angular2 单元测试 (Jasmine),我知道我应该模拟服务而不是提供真实的服务,所以我执行以下操作:
{ provide: TranslateService, useClass: TranslateService }
如果您没有为测试目的而创建的另一个 class(构建的或自定义的),这是正确的做法吗?
这对我来说没有任何意义,如果我将使用 TranslateService,我应该这样做吗?class 还是应该以不同的方式来做?
如果您不需要使用模拟服务,则无需创建和注入模拟服务,只需注入原始服务即可。
在这种情况下,您也可以使用更短的形式
TranslateService
而不是
{ provide: TranslateService, useClass: TranslateService }
如果测试中使用的组件、指令、管道或服务依赖于 TranslateService
,则必须以某种方式提供它。
如果您没有这样做,您将收到有关缺少提供者的错误消息。
如果您不提供服务并且没有收到异常,则该服务未被使用或它是可选的 (constructor(@Optional this.translateService:TranslateService){}
)。
在这种情况下,您可能会或可能不会收到异常,具体取决于您在测试期间执行的代码是否尝试访问该服务。
我正在编写 angular2 单元测试 (Jasmine),我知道我应该模拟服务而不是提供真实的服务,所以我执行以下操作:
{ provide: TranslateService, useClass: TranslateService }
如果您没有为测试目的而创建的另一个 class(构建的或自定义的),这是正确的做法吗?
这对我来说没有任何意义,如果我将使用 TranslateService,我应该这样做吗?class 还是应该以不同的方式来做?
如果您不需要使用模拟服务,则无需创建和注入模拟服务,只需注入原始服务即可。
在这种情况下,您也可以使用更短的形式
TranslateService
而不是
{ provide: TranslateService, useClass: TranslateService }
如果测试中使用的组件、指令、管道或服务依赖于 TranslateService
,则必须以某种方式提供它。
如果您没有这样做,您将收到有关缺少提供者的错误消息。
如果您不提供服务并且没有收到异常,则该服务未被使用或它是可选的 (constructor(@Optional this.translateService:TranslateService){}
)。
在这种情况下,您可能会或可能不会收到异常,具体取决于您在测试期间执行的代码是否尝试访问该服务。