使用Jasmine进行单元测试$ modal

DIMM收割机

我有一个带有控制器的Angular应用,该控制器Angular-Strap在函数调用期间显示模式窗口。它在Chrome中可以正常运行,但是让有效的单元测试正常工作我很茫然。

应用模块和FooController:

var app = angular.module("app", ["mgcrea.ngStrap"]);

app.controller("FooController", function($scope, $modal) {
    var fooModal = $modal({
        title: 'Foo',
        content:'Bar',
        show: false,
        html: true,
        backdrop: 'static',
        placement: 'center'});
    
    angular.extend($scope, {
        makeItFoo: function() {
            fooModal.show();
        }
    });
});

控制器规格:

describe('FooController', function () {
    var scope, controller, modal;

    beforeEach(module('app', function ($provide) {
        // Stub out $modal service
        $provide.value('$modal', function () {
            return {
                hide: function () { },
                show: function () { }
            };
        });
    }));

    beforeEach(inject(function ($rootScope, $controller, $injector) {
        //set up a new scope and the controller for the test
        scope = $rootScope.$new();
        controller = $controller('FooController', {$scope: scope});
        modal = $injector.get('$modal');
    }));

    it('should show the modal', function () {
        var modalSpy = spyOn(modal(), 'show');
        
        scope.makeItFoo();
        
        expect(modalSpy).toHaveBeenCalled();
    });
});

这也是一个小提琴。

我希望我的呼叫makeItFoo()显示模式,但Jasmine失败,并显示error Expected spy show to have been called我还尝试将showmodal属性设置为true而不是show()单独调用,并且尝试了其他方式,将$ modal服务存根并将其直接注入到控制器中,但最终会出现相同的错误。

我正在使用AngularJS 1.2.14,Angular-Strap 2.0.0和Jasmine 1.3.1。

PSL

而不是做这些。$modal使用show和hide方法创建一个模拟对象,并对它们设置期望。

describe('FooController', function () {
    var scope, controller, modal;

    beforeEach(module('app'));

    beforeEach(inject(function ($rootScope, $controller) {
        //set up a new scope and the controller for the test
        scope = $rootScope.$new();
        //Create spy object
        modal = jasmine.createSpyObj('modal', ['show', 'hide']);
        //provide modal as dependency to the controller.
        controller = $controller('FooController', {$scope: scope, $modal:modal});

    }));

    it('should show the modal', function () {

        scope.makeItFoo();

        expect(modal.show).toHaveBeenCalled();
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在AngularJS单元测试中模拟$ modal

来自分类Dev

单元测试angular-bootstrap $ modal

来自分类Dev

使用Jasmine进行AngularJS控制器单元测试

来自分类Dev

在AngularJS中使用Jasmine对滤镜进行单元测试

来自分类Dev

使用Jasmine进行Angular JS单元测试

来自分类Dev

使用Jasmine从API进行单元测试承诺

来自分类Dev

Jasmine,使用Promises对XMLHttpRequest进行单元测试

来自分类Dev

如何使用 Jasmine 对 init() 函数进行单元测试?

来自分类Dev

使用 jasmine 进行单元测试时模拟全局对象

来自分类Dev

使用Jasmine测试modal.open()

来自分类Dev

ng-bootstrap modal在单元测试中失败

来自分类Dev

需要帮助完成角度$ modal的单元测试

来自分类Dev

使用实体框架进行单元测试的单元测试

来自分类Dev

使用Google测试进行单元测试

来自分类Dev

使用失败方法对 jQuery getJSON 函数错误进行单元测试,使用 Jasmine 和 Karma

来自分类常见问题

使用Jasmine进行角单元测试:如何删除或修改spyOn

来自分类Dev

使用Karma / Jasmine对modalInstance控制器进行单元测试

来自分类Dev

尝试使用Jasmine和AngularJS进行单元测试时,参数'fn'不是函数

来自分类Dev

使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

来自分类Dev

如何使用Jasmine进行单元测试OidcSecurityService.checkAuth函数?

来自分类Dev

使用Jasmine进行角度单元测试-错误:请添加@NgModule批注

来自分类Dev

将FormGroup设置为Disabled时,如何使用Jasmine进行单元测试?

来自分类Dev

使用Jasmine进行单元测试时,javascript的显示模块模式有哪些缺点?

来自分类Dev

使用Jasmine-node对Node.js进行单元测试

来自分类Dev

如何使用Jasmine(Angular JS)对自定义装饰器进行单元测试

来自分类Dev

使用Karma / Jasmine对ES6 Angular Directive ControllerAs进行单元测试的问题

来自分类Dev

使用Jasmine对我的angularJS应用程序进行单元测试时,$ interval是未定义的

来自分类Dev

使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

来自分类Dev

使用Jasmine进行单元测试时,如何要求没有“ sub-requires”的文件?

Related 相关文章

  1. 1

    在AngularJS单元测试中模拟$ modal

  2. 2

    单元测试angular-bootstrap $ modal

  3. 3

    使用Jasmine进行AngularJS控制器单元测试

  4. 4

    在AngularJS中使用Jasmine对滤镜进行单元测试

  5. 5

    使用Jasmine进行Angular JS单元测试

  6. 6

    使用Jasmine从API进行单元测试承诺

  7. 7

    Jasmine,使用Promises对XMLHttpRequest进行单元测试

  8. 8

    如何使用 Jasmine 对 init() 函数进行单元测试?

  9. 9

    使用 jasmine 进行单元测试时模拟全局对象

  10. 10

    使用Jasmine测试modal.open()

  11. 11

    ng-bootstrap modal在单元测试中失败

  12. 12

    需要帮助完成角度$ modal的单元测试

  13. 13

    使用实体框架进行单元测试的单元测试

  14. 14

    使用Google测试进行单元测试

  15. 15

    使用失败方法对 jQuery getJSON 函数错误进行单元测试,使用 Jasmine 和 Karma

  16. 16

    使用Jasmine进行角单元测试:如何删除或修改spyOn

  17. 17

    使用Karma / Jasmine对modalInstance控制器进行单元测试

  18. 18

    尝试使用Jasmine和AngularJS进行单元测试时,参数'fn'不是函数

  19. 19

    使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

  20. 20

    如何使用Jasmine进行单元测试OidcSecurityService.checkAuth函数?

  21. 21

    使用Jasmine进行角度单元测试-错误:请添加@NgModule批注

  22. 22

    将FormGroup设置为Disabled时,如何使用Jasmine进行单元测试?

  23. 23

    使用Jasmine进行单元测试时,javascript的显示模块模式有哪些缺点?

  24. 24

    使用Jasmine-node对Node.js进行单元测试

  25. 25

    如何使用Jasmine(Angular JS)对自定义装饰器进行单元测试

  26. 26

    使用Karma / Jasmine对ES6 Angular Directive ControllerAs进行单元测试的问题

  27. 27

    使用Jasmine对我的angularJS应用程序进行单元测试时,$ interval是未定义的

  28. 28

    使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

  29. 29

    使用Jasmine进行单元测试时,如何要求没有“ sub-requires”的文件?

热门标签

归档