Karma + AngularJS-结合模板和控制器

时间:2018-09-19 11:56:22

标签: angularjs testing karma-runner

这是我的情况:

我有一个包含很多组件的视图。根据用户与这些组件的交互,为视图提供了一个控制器(通过ui-router状态配置),视图的控制器会生成一些数据,然后将其发送到服务器。

我想在测试中做的是通过使用class Bridge @Inject constructor(): HasSupportFragmentInjector 模仿用户的活动,然后使用element.triggerHandler('click')来确保准备了正确的有效负载。

我可以使用单个指令或组件执行类似的操作,但是可以使用自定义模板和控制器吗?

这是我的尝试:

$httpBackend

然后,我正在尝试类似的操作(有点混乱,但是该操作在另一项测试中适用于组件)

const template = $templateCache.get('view-template.html');
let scope = $rootScope.$new();
let element = angular.element(template);
$compile(element)(scope);

let controller = $controller('ViewController', {
    '$scope': scope,
    '$element': element
});
scope.$digest();

angular.element($(element).find('#myButton')).triggerHandler('click'); scope.$digest(); 中,我有:

view-template.html

<button ng-click="vm.test()" id="myButton">Click me</button> 来自声明状态时最初使用的vm。当运行以上代码时,不会执行控制器中的controllerAs。可以运作吗?

我知道它不仅仅是单元测试,但是由于我不需要服务器,因此我认为使用业力是个好主意。

0 个答案:

没有答案