角度指令的Jasmine测试:实际不是函数

时间:2015-10-31 10:18:59

标签: javascript angularjs unit-testing jasmine

我有以下测试:

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

我的输入元素包含我的指令。我的指令在ngModel上有一个require,如果指令所在的元素有ngModel指令,测试的目的是让它编译而不会出错。所有这些都在生产中,但由于某些原因,我的测试失败了,我收到了消息:

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

我也在使用Jasmine 2.0。

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

1 个答案:

答案 0 :(得分:3)

在做更多的修修补补之前,我轻率地问这个问题。我所做的是在一个匿名函数调用中包含expect的内容,如下所示:

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