2013-05-31 6 views
4

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

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

Вот очень простой тестовый образец, который проверяет, если контроллер определяется в угловом приложении:

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(); но не кажется konacha иметь аналогичный метод для passThrough()

Эти проблемы всегда происходят на $httpBackend.flush().

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

ответ

1

Это потому, что Konacha не support any integration with Rails views. Решение заключается в загрузке углового $templateCache вручную, аналогично тому, что вы должны делать при использовании шаблонов with the asset pipeline. Чтобы выполнить эту работу, вам нужно будет сделать свой тест предварительным процессором 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 

 Смежные вопросы

  • Нет связанных вопросов^_^