单元测试Angularjs引导模式

单元测试Angularjs引导模式,angularjs,Angularjs,我有一个指令,其中有一个链接,点击后会在模式弹出窗口中显示数据 如何为点击链接编写单元测试(jasmine),以及如何测试打开的模型和正确显示模式中的数据 你能提供一些参考资料吗 这是我想要测试的 angular.module(’sample', [ 'ui.bootstrap' ]) .controller(’ employeeController “,[”$scope“,“$modal”,函数($scope,$modal){ 我想检查调用ClickMe时是否打开了模型,并且模型中的

我有一个指令,其中有一个链接,点击后会在模式弹出窗口中显示数据

如何为点击链接编写单元测试(jasmine),以及如何测试打开的模型和正确显示模式中的数据

你能提供一些参考资料吗

这是我想要测试的

angular.module(’sample', [
    'ui.bootstrap'
])
.controller(’ employeeController
“,[”$scope“,“$modal”,函数($scope,$modal){


我想检查调用ClickMe时是否打开了模型,并且模型中的数据是否正确填充。从现在起,模型仅在按escape键时关闭。

首先,您必须创建一个模型模拟:

function  ModalMock  {
    this.open = function(modalArgs) {
     return
   };
}
然后在测试中初始化此项:

beforeEach(() => {
        // create mocks
        modalMock = new ModalMock(); 
        controller = $controller('MyCtrl', {
        $scope: scope,
        $modal: modalMock,

     });

 });
在实际试块中,应使用
spyon
方法:

 it('should do something', function() {

            var modalPromise = q.defer().promise;

            spyOn(modalMock, 'open').andReturn({ result: modalPromise });

            controller.doSomething(arg);


            // make sure that angular resolves/rejects the deferreds
            scope.$digest();

            // verify that the modal is opened
            expect(modalMock.open).toHaveBeenCalled();

        });

您可以编译您的指令并使用jQuery单击它,然后您可以在“modal”函数上创建spies,并期望在元素上调用“modal”函数。如果您有类似的内容:

$(element).modal('show');

您可以添加spy-on元素和模态函数,并期望使用'show'参数调用模态。对于单元测试,您只需要测试您的逻辑是否工作。如果您需要测试模态组件,并且它是否正确显示,则需要在E2E测试中测试。

我已经编辑了要测试的代码,我有一些synt使用ur方法的ax probs。
$(element).modal('show');