0

我一直在angular.mock.$httpBackend为使用$http. 我遇到了一些与注入所有依赖项相关的问题,因为我的测试用例需要访问该服务,而该服务又需要访问$httpBackend.

但是,现在让我感到困惑的具体问题是,有时angular.mock.inject()便捷方法会立即执行它包装的函数,有时它只是返回函数的副本。我在源代码中看到这是基于一个名为 currentSpec.isRunning 的属性。这是什么意思?这是睾丸还是茉莉花财产?我还没有在兔子洞里走那么远……

4

1 回答 1

0

最后我检查了一下, angular.mock.inject() 的返回值基于你所处的 Jasmine 上下文类型(我假设他们在 1.2 中通过添加 mocha 支持对其进行了一些更改)。

本质上,如果您在规范中(实际上是在传递给 beforeEach 的回调中):

beforeEach(function () {
    inject(function () { });
});

然后它会立即执行注入;但是,如果您仍在定义规范:

beforeEach(inject(function () { }));

然后它会返回一个函数。否则它将在您的测试运行之前执行,并且不是非常有用。这似乎只是作为一种更方便/不那么冗长的语法提供的。

于 2013-11-05T21:16:39.007 回答