单元测试Dom操纵服务

时间:2016-03-23 11:30:39

标签: angularjs

我如何使用Jasmine

在Angular中测试以下服务
angular.module('xyz')
    .service('noteCardDisplay', function () {

      function waitForDialog() {
        var dialogWrapper, dialogModal;
        dialogWrapper = angular.element('.modal-content').parent().parent();
        dialogWrapper.css('height', 475);
        dialogWrapper.css('width', 650);
        dialogWrapper.css('margin-left', 300);
        dialogWrapper.css('margin-top', 200);
        dialogModal = angular.element('.modal-content').parent();
        dialogModal.css('margin', 0);
      }

      return {
        waitForDialog: waitForDialog
      };

    });

1 个答案:

答案 0 :(得分:0)

似乎您的服务处理DOM元素,那么您应该使用$compile来创建DOM片段以进行测试。然后,您可以使用angular.element.attr验证属性的某些值。

这看起来像这样:

it('div should have title attribute', inject(function($rootScope, $compile) {
  $rootScope.title = 'new title';
  element = $compile('<div title="{{title}}"></div>')($rootScope);
  $rootScope.$digest();
  expect(element.attr('title')).not.toBe('');
  expect(element.attr('title')).toBe(undefined);
}));