AngularJS:测试之间的重载模块

时间:2014-07-01 11:16:41

标签: ruby-on-rails angularjs jasmine

我的网站上有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)

0 个答案:

没有答案