我编写了包含以下模式的测试,但我不理解。
describe("controllerName", function() {
"use strict";
beforeEach(function() {
module("moduleName");
inject(function(_serviceName_) {
serviceName = _serviceName_;
});
});
...
});
调用module
函数有什么作用?调用inject
函数有什么作用?inject
函数如何知道应该在哪里注入服务?
如果您能给出我能理解的解释,那会让我感到高兴。
我们需要加载包含模块,以便可以对其进行测试。module
是所提供的功能angular-mocks.js
。因此,使用模块名称作为参数调用它会加载该模块。
inject
是的提供给我们的另一种方法angular-mocks.js
。它使我们能够访问文件中声明的各种依赖项。以您发布的代码为例,使用回调函数调用inject函数可让您访问控制器/服务等所依赖的依赖项。只有在该回调中,您才能将这些依赖项分配给某些变量,然后在测试中使用它们。
由于需要针对每个测试(即it
块)执行此操作,因此对的调用module
和inject
函数位于beforeEach
在每个it
块之前被调用的块内。
同样,由于调用了该inject
函数,因此它使您可以访问serviceName
将在测试中使用的依赖项。我们通常给服务名称加上_
。只是将它们与您在这些服务的测试中使用的变量区分开来。解析这些名称时,先删除开头$injector
和结尾_
。
希望这可以帮助您更好地理解所编写的测试。
您可以在此处了解更多信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句