javascript - Angular Directive(指令) : Actual is not a function 的 Jasmine 测试

标签 javascript angularjs unit-testing jasmine

我有以下测试:

it("should load the directive without error", function () {
    expect($compile(inputElement)($scope)).not.toThrow();
});

并且我的输入元素包含我的指令。我的指令对 ngModel 有要求,测试的目的是如果指令所在的元素具有 ngModel 指令,则它可以无错误地编译。所有这些都在生产中有效,但由于某种原因我的测试失败了,我收到了消息:

Actual is not a Function in __pathToJasmine/jasmine.js (line 2207)

我也在使用 Jasmine 2.0。

现在,我意识到实际的函数是 $compile,一旦使用 $scope 调用它,它就不再是一个函数,但是我如何测试我的指令是否编译成功?

最佳答案

在进行更多修改之前我很鲁莽地问这个问题。我所做的是将 Expect 的内容包装在匿名函数调用中,如下所示:

it("should load the directive without error", function () {
    expect(function() {
        $compile(inputElement)($scope)
    }).not.toThrow();
});

关于javascript - Angular Directive(指令) : Actual is not a function 的 Jasmine 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33450459/

相关文章:

java - Mockito 验证构造函数调用方法

c# - 修改私有(private)静态只读字段

javascript - Socket.io - 发送用户和消息数据

javascript - Angular 在 'ng-invalid' 字段上自动添加 'required' 类

javascript - 什么是 Angular Material 中的 mdLiveAnnouncer 及其工作原理?

javascript - 带参数的angularjs $http.post

javascript - 测试 AngularUI Bootstrap 模式实例 Controller

javascript - Google 条形图无法显示 float

javascript - 通过 onclick [Javascript] 推送数字值(以毫秒为单位)以发挥作用

javascript - 如何从 Windows Azure 服务器脚本中插入的项目中获取自动生成的 ID?