Angularjs 茉莉花。module()和inject()做什么?它们是如何连接的?
我写过包括以下模式的测试,但我不理解Angularjs 茉莉花。module()和inject()做什么?它们是如何连接的?,angularjs,jasmine,Angularjs,Jasmine,我写过包括以下模式的测试,但我不理解 describe("controllerName", function() { "use strict"; beforeEach(function() { module("moduleName"); inject(function(_serviceName_) { serviceName = _serviceName_; }); }); ... }
describe("controllerName", function() {
"use strict";
beforeEach(function() {
module("moduleName");
inject(function(_serviceName_) {
serviceName = _serviceName_;
});
});
...
});
调用模块
函数的作用是什么?调用inject
函数做什么?inject
函数如何知道应该将服务注入到哪里
如果您能给我一个我能理解的解释,我会很高兴的。我们需要加载包含模块,以便测试它<代码>模块是由
angular mocks.js
提供的函数。因此,使用模块名作为参数调用它将加载该模块
inject
是angularmocks.js
提供给我们的另一种方法。它使我们能够访问文件中声明的各种依赖项。以您发布的代码为例,通过回调函数调用inject函数可以访问控制器/服务等所依赖的依赖项。只有在回调中,您才能将这些依赖项分配给某些变量,然后在测试中使用它们
由于需要对每个测试(即it
块)执行此操作,因此对模块
和inject
函数的调用被放置在每个块之前的块中,就像在每个it
块之前调用一样
另外,由于您调用了inject
函数,因此它允许您访问serviceName
依赖项,您将在测试中使用该依赖项。我们通常会给出一个服务名称,名称中用\uuu
括起来。这只是为了用您在这些服务的测试中使用的变量来区分它们$injector
在解析这些名称时,会剥离前导和尾随的\uu
希望这能帮助您更好地理解您编写的测试
您可以阅读有关它的更多信息我们需要加载包含模块,以便测试它<代码>模块
是由angular mocks.js
提供的函数。因此,使用模块名作为参数调用它将加载该模块
inject
是angularmocks.js
提供给我们的另一种方法。它使我们能够访问文件中声明的各种依赖项。以您发布的代码为例,通过回调函数调用inject函数可以访问控制器/服务等所依赖的依赖项。只有在回调中,您才能将这些依赖项分配给某些变量,然后在测试中使用它们
由于需要对每个测试(即it
块)执行此操作,因此对模块
和inject
函数的调用被放置在每个块之前的块中,就像在每个it
块之前调用一样
另外,由于您调用了inject
函数,因此它允许您访问serviceName
依赖项,您将在测试中使用该依赖项。我们通常会给出一个服务名称,名称中用\uuu
括起来。这只是为了用您在这些服务的测试中使用的变量来区分它们$injector
在解析这些名称时,会剥离前导和尾随的\uu
希望这能帮助您更好地理解您编写的测试
你可以阅读更多关于它的内容