我想在量角器测试规范的范围内有效地提供angular2服务的替代实现。我不是要测试服务,所以MockBackend提供的价值不大。
在规格运行之前,我是否可以访问注射器或注册供应商?这种事情
{provide: MyService, useClass: MyMockedService}
只是让MyMockedService具有返回硬编码值的相同方法吗?
我知道如何在单元测试中做到这一点,这是专门的量角器e2e测试。而且,我不是要尝试测试服务......我不相信MockBackend在这里有所帮助。
答案 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,..)。
希望它有所帮助。