Угловой юнит-тест для всплывающего окна

Я хочу написать угловой тестовый модуль для следующей функции,

$scope.addDataList = function () {
    $scope.IsDefault = false;
    $scope.IsPATsDefault = false;
    $('#plAddEditCopy').modal('show');
}

addDataList открывает всплывающее окно начальной загрузки. Как я использую SpyOn в третьей строке функции $('#plAddEditCopy').modal('show')?

2 ответа

Решение

Чтобы шпионить за модал вы можете сделать следующее

//spyOn(object, methodName) where object.method() is a function
spyOn($('#yourelementId'), 'modal')

expect($('#yourElementId').modal).toHaveBeenCalled()();

см. Жасмин шпионить

Попробуйте использовать следующее

Код JS

  describe(function() {
    var form;

    beforeEach(function() {
      html= $('<div id="plAddEditCopy" class="modal fade" role="dialog">'+
      '<div class="modal-dialog"></div></div>');
      $(document.body).append(html);
    });

    it('your test', function() {
    // call your function
    // so that will open modal and cover that code
    // like 
    ctrl.addDataList();
    expect();
    })

    afterEach(function() {
      // remove it
    });
  });
Другие вопросы по тегам