如何在angularjs中的html文件中测试click事件?

时间:2016-06-17 09:41:19

标签: angularjs unit-testing jasmine

我在我的应用中定义了此路线。

$stateProvider.state('Details', {
    url: '/c/:cId/cDetails/:cDId',
    templateUrl: 'cData/Details.html',
    controller: 'DetailsCtrl',
    controllerAs: 'ctrl',        
    resolve: {
      Fields: function ($stateParams,DataFactory) {
        return DataFactory.getFields(keys);
      }
    }
  });

这是Details.html的html

<div id="Details" ng-cloak >
<button open-dialog click="ctrl.onClose()"></button>
</div>
<directive-form></directive-form>

我想编写单元测试来检查对话框是否在按钮时打开,如果表单是脏的。表单由指令directive-form。

创建

我想我需要编译details.html。我对吗?

我不确定如何编译details.html文件并调用onclick方法。这可能吗?

1 个答案:

答案 0 :(得分:0)

这是不可测试的代码。

要使其可测试,请将OpenDialogIfFormIsDirty()方法移动到DetailsCtrl中的方法。然后删除onclick属性并将其替换为ng-click="ctrl.openDialogIfFormIsDirty()"

这只是第一步。现在在原始问题中发布DetailsCtrl和openDialogIfFormIsDirty()方法的一些代码,我们可以看到如何使其可测试。