假设我有一个模块 -moduleX,它公开了一个服务(称为 serviceX)。我有另一个模块 - moduleY,它本身公开了一个使用 serviceX 的名为 serviceY 的服务。
如何通过注入模拟的 serviceX 来测试 moduleY ?NgMock 似乎不允许你这样做。
到目前为止,我能找到的最好的方法是这样做:
describe "a test" ,->
beforeEach () ->
mockModule = angular.module "mockModule",[]
mockModule.factory "serviceY", [()->
return "your mocked module"
]
angular.mock.module 'moduleX', "mockModule"
然后每当您注入 serviceY 时,都会使用新服务(显然,具有相同名称的服务会相互覆盖,以便最后添加的服务获胜)