量角器测试中的模拟角度2服务

时间:2017-05-11 17:16:10

标签: angular protractor

我想在量角器测试规范的范围内有效地提供angular2服务的替代实现。我不是要测试服务,所以MockBackend提供的价值不大。

在规格运行之前,我是否可以访问注射器或注册供应商?这种事情

{provide: MyService, useClass: MyMockedService}

只是让MyMockedService具有返回硬编码值的相同方法吗?

我知道如何在单元测试中做到这一点,这是专门的量角器e2e测试。而且,我不是要尝试测试服务......我不相信MockBackend在这里有所帮助。

2 个答案:

答案 0 :(得分:1)

您可以为量角器测试使用不同的环境,然后在注册服务的模块中为其添加检查。使用抽象超类,您可以在Angular中使用DI根据环境注入不同的值。类似这样:

environment.e2eMode ? {provide: AbstractService, useClass: ServiceMock} : {provide: AbstractService, useClass: ServiceImpl},

但是你必须注意你的MockService不会以生产代码结束。

答案 1 :(得分:0)

您是否听说过/ ng-Apimock。我将它用于构建Angular 2+应用程序的客户,并且工作正常。它用于本地开发(有一个简单的UI来为每个服务选择不同的场景)并在Protractor测试期间使用它。创建响应很容易,您可以使用动态定义的全局变量。

它可以用于不同的配置(Angular cli,Angular Seed,grunt,gulp,..)。

希望它有所帮助。