Угловое тестирование с использованием мокко, неожиданные запросы

В моих угловых тестах я продолжаю получать Error: Unexpected request: GET 'some/rails/view.html'

Для тестирования я использую коначу, в которой вместо жасмина используется мокко. Проект основан на приложении Rails, которое является причиной использования конача.

Вот действительно простой пример теста, который проверяет, определен ли контроллер в приложении Angular:

describe "ShowAccountCtrl", ->

  beforeEach angular.mock.module('APP_NAME')

  beforeEach inject(($rootScope, $controller) ->
    @scope = $rootScope.$new()
    @ctrl = $controller 'ShowAccountCtrl',
      $scope: @scope
  )


  it "should be defined", ->
    expect(@ctrl).to.not.be.undefined

Я видел кое-что о $httpBackend.when('GET', /\.html$/).passThrough(); но у коначи, похоже, нет подобного метода passThrough()

Эти проблемы всегда случаются $httpBackend.flush(),

Кто-нибудь побеждал эту проблему раньше? Есть ли способ игнорировать запросы к шаблонам рельсов, чтобы я мог сосредоточиться на тестировании функциональности контроллеров?

1 ответ

Это потому, что Konacha не поддерживает интеграцию с представлениями Rails. Решение заключается в загрузке угловых $templateCache вручную, аналогично тому, что вы должны делать при использовании шаблонов с конвейером ресурсов. Чтобы это работало, вам нужно, чтобы ваш тест имел препроцессор ERB (например, some_spec.js.coffee.erb).

beforeEach inject ($templateCache) ->    
  template = '/app/templates/view.html'
  content = """
  <%= IO.read(Rails.root.join('/app/templates/view.html')) %>
  """  
  $templateCache.put template, content
Другие вопросы по тегам