在angular.js中模拟自定义服务

时间:2013-06-23 12:36:41

标签: testing angularjs

假设我有一个模块-moduleX,它公开了一个服务(称为serviceX)。 我有另一个模块 - moduleY,它本身公开了一个名为serviceY的服务,它使用serviceX。

如何通过注入模拟的serviceX来测试moduleY? NgMock似乎不允许你这样做。

1 个答案:

答案 0 :(得分:2)

到目前为止,我能找到的最好的就是这样做:

describe "a test" ,->
  beforeEach () ->
    mockModule = angular.module "mockModule",[]
    mockModule.factory "serviceY", [()->
        return "your mocked module" 
    ]
    angular.mock.module 'moduleX', "mockModule"

然后每当你注入serviceY时,都会使用新服务(显然,具有相同名称的服务会相互覆盖,以便最后添加的服务获胜)