angularjs – 如何在Angular 1.5组件中对具有不同名称的绑定进行单元测试?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何在Angular 1.5组件中对具有不同名称的绑定进行单元测试?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下组件:

angular.module('foo')
    .component('searchInput',{
        bindings: {
            text: "<query"
        },templateUrl: 'components/searchInput/searchInput.html',controller: 'SearchInputCtrl'
    });

以下通过:

expect(component.text).toBe('bar');

我必须使用以下代码

var component = $componentController('searchInput',{$scope: {}},{
            text: 'bar'
        }
    );

但是,我想测试绑定到’text’的值来自’query’.这不起作用:

var component = $componentController('searchInput',{
            query: 'bar'
        }
    );

解决方法

您可以通过编译组件来测试此类事物.例如

inject(function($compile,$rootScope) {
    var parentScope = $rootScope.$new();
    parentScope.myVar = 'test';

    var element = angular.element('<search-input query="myVar"></search-input>');

    var compiledElement = $compile(element)(parentScope);
    parentScope.$digest();

    var scope = compiledElement.isolateScope();

    expect(scope.$ctrl.text).toBe('test');
});

猜你在找的Angularjs相关文章