【问题标题】:Testing events and document content in karma-jasmine unit-testing在 karma-jasmine 单元测试中测试事件和文档内容
【发布时间】:2016-02-24 03:16:16
【问题描述】:

我想使用 jasmine-karma 单元测试来测试以下功能,但我找不到这样做的方法。

功能一:

$scope.info = function(text){
  $(":root").find("#info").remove();
  var htmlObject = "<div id='info' info-alert text='"+$sanitize(text)+"'/>";
  var comments = $compile( htmlObject )( $scope );
  $(document.body).append( comments );
};

功能2:

 $scope.$on('settingsChanged',function(){
  $scope.getSettings();
});

我已尝试阅读有关如何测试事件和玩测试的文档,但似乎没有任何效果。 这是我第一次尝试的最后一次尝试,但我想最后一行不是正确的做法:

 it('info', function() {
        var text="Some information";
        var controller=createController();
        scope.info(text);
        expect($(document.body).val()).toContain(text);  
    });

我尝试了第二个类似的东西,但似乎没有任何效果

【问题讨论】:

  • 你的测试在哪里?为什么这没有成功?您收到了哪些错误消息?

标签: angularjs unit-testing events karma-jasmine


【解决方案1】:

你的文字可能被$sanitize(text)修改了

AngularJS 官方documentation 声明: - $sanitizeProvider - ngSanitize 模块中的服务 通过去除所有潜在危险标记来清理 html 字符串。

所以请检查 document.body 是否包含你的文本,并且它没有被 $sanitize(text) 改变

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多