2013-05-31 78 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