2015-06-25 84 views
0

我想爲我的過濾器編寫一個茉莉花測試。 這裏是我的過濾器:

angular.module('CPSCore.Filters').filter('TextToHtmlSafe', ['$sce', function  ($sce) 
{ 
return function (text) 
{ 
     if (!text) 
      return text; 

     var htmlText = text.replace(/\<br \/\>/g, '\n'); 
     htmlText = htmlText.replace(/\<br\/\>/g, '\n'); 
     htmlText = htmlText.replace(/\<br\>/g, '\n'); 
     htmlText = htmlText.replace(/\</g, '< '); 
     htmlText = htmlText.replace(/\&/g, '& '); 
     htmlText = htmlText.replace(/\n/g, '<br />'); 
     return $sce.trustAsHtml(htmlText); 

    }; 
}]); 

這裏是我的茉莉花測試:

describe('CPSCore.Filters', function() { 

var TextToHtmlSafeFilter, $sce; 

beforeEach(module('CPSCore.Filters')); 
beforeEach(inject(function (_$sce_, $filter) { 
    $sce = _$sce_; 
    TextToHtmlSafeFilter = $filter('TextToHtmlSafe'); 
})); 



it('should replace \n with <br />', function() { 
    expect($sce.getTrustedHtml(TextToHtmlSafeFilter('testing\n'))).toEqual('testing<br />');  

}); 



}); 

運行測試時,我在噶收到此錯誤:

錯誤:未知提供商:$ sceProvider < - $ sce

任何人都可以告訴我我做錯了什麼?

+0

您是否正確創建模塊?你在測試中定義了'angular.module('CPSCore.Filters',[])'(括號)嗎? – Michael

+0

模塊正常工作。測試失敗,所有的代碼都在上面我沒有遺漏任何東西 – Dritzz

回答

0

顯然模塊不能正常工作。你必須創建模塊與一個空的依賴列表!

var app = angular.module('CPSCore.Filters', []); 

Plunker

+0

你對這篇文章的態度並不是很受歡迎。我建議我的模塊能夠正常工作,我的模塊創建和聲明是在上述代碼範圍之外完成的。 – Dritzz

0

固定我的問題這實際上是在我karma.config文件。我忘了將新的角度版本添加到配置文件中。