Jasmine Test - 未知提供商$ sceProvider

时间:2015-06-25 10:44:56

标签: angularjs unit-testing jasmine karma-jasmine

我正在尝试为我的过滤器编写茉莉花测试。 这是我的过滤器:

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 />');       

});



});

运行测试时,我在Karma中收到此错误:

错误:未知提供商:$ sceProvider&lt; - $ sce

谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:0)

显然模块不能正常工作。您必须创建具有空依赖列表的模块!

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

Plunker

答案 1 :(得分:0)

修复了我的问题,这实际上是在我的karma.config文件中。我忘了将新的角度版本添加到配置文件中。