我的网站上有2个子域,每个子域都使用AngularJS。每个应用程序都有名称" app"我使用相同的spec_helper
来注入依赖项。
如果我为每个域单独运行测试,它可以正常工作,但如果我一起运行它会因angular.mock.module('app')
没有重新加载app
模块而失败,并使用其他应用程序的缓存版本。
所以问题:如何在测试之间清除AngularJS依赖缓存?
这是我的帮手:
#= require angular-mocks
#= require sinon
#= require jasmine-sinon
beforeEach ->
angular.mock.module('app')
beforeEach inject (_$httpBackend_, _$compile_, $rootScope, $controller, $location, $injector, $timeout) ->
@scope = $rootScope.$new()
@http = _$httpBackend_
...
afterEach ->
@http.resetExpectations()
@http.verifyNoOutstandingExpectation()
以下是常规网站规范的示例:
#= require site/application
#= require spec_helper
describe 'PlaceCtrl', ->
beforeEach ->
@controller('PlaceCtrl', { $scope: @scope })
...
it 'loads place', ->
expect(@scope.place.id).toEqual(@place.id)
以下是常规移动网站规范的示例:
#= require mobile/application
#= require spec_helper
describe 'PlaceCtrl', ->
beforeEach ->
@controller('PlaceCtrl', { $scope: @scope })
...
it 'loads place', ->
expect(@scope.place.id).toEqual(@place.id)