使用Jasmine测试Angular。module()和inject()分别做什么,以及它们如何连接?

用户名

我编写了包含以下模式的测试,但我不理解。

describe("controllerName", function() {
    "use strict";

    beforeEach(function() {
        module("moduleName");

        inject(function(_serviceName_) {
            serviceName = _serviceName_;
        });
    });

    ...

});

调用module函数有什么作用?调用inject函数有什么作用?inject函数如何知道应该在哪里注入服务?

如果您能给出我能理解的解释,那会让我感到高兴。

悉达·阿梅拉(SiddAjmera)

我们需要加载包含模块,以便可以对其进行测试。module是所提供的功能angular-mocks.js因此,使用模块名称作为参数调用它会加载该模块。

inject是的提供给我们的另一种方法angular-mocks.js它使我们能够访问文件中声明的各种依赖项。以您发布的代码为例,使用回调函数调用inject函数可让您访问控制器/服务等所依赖的依赖项。只有在该回调中,您才能将这些依赖项分配给某些变量,然后在测试中使用它们。

由于需要针对每个测试(即it块)执行此操作,因此对的调用moduleinject函数位于beforeEach在每个it之前被调用的块内。

同样,由于调用了该inject函数,因此它使您可以访问serviceName将在测试中使用依赖项。我们通常给服务名称加上_只是将它们与您在这些服务的测试中使用的变量区分开来。解析这些名称时,先删除开头$injector和结尾_

希望这可以帮助您更好地理解所编写的测试。

您可以在此处了解更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Jasmine / karma进行Angular 4单元测试以及http发布模拟-如何修复

使用Jasmine和Angular测试FileReader

pipenv install -e是做什么的,以及如何使用它?

RewriteBase是做什么的,以及如何使用它?

迭代器和可迭代之间有什么区别,以及如何使用它们?

什么是dynamodb中的哈希键和范围键以及如何使用它们

ID令牌和访问令牌有什么区别,以及如何使用JWT实现它们?

在Angular + Jasmine中测试事件链和module.run()

什么是cufon和画布,以及如何覆盖它们

什么是定制点对象以及如何使用它们?

什么是StringIndexer,VectorIndexer以及如何使用它们?

什么是 Julia 中的回调以及如何使用它们?

什么是Github项目页面以及如何使用它们?

寻找“ tokenizer”,“ parser”和“ lexers”是什么以及它们如何相互关联和使用的明确定义?

如何在Jasmine和Marble的Angular 4 5中使用ngrx滤镜测试效果

如何在 angular 7 中使用 jasmine 和 karma 编写单元测试用例

什么是响应式网站,为什么使用它们,以及如何开发它们?

updateExpression 中的“添加”和“设置”在 dynamodb updateItem 中有什么区别以及如何使用它们?

IOS开发中的协议,扩展名和类别之间有什么区别?以及如何正确使用它们?

@class方法,@ static方法和普通函数之间有什么区别以及如何使用它们

Angular和Jasmine:如何测试$ q承诺链已解决

如何在Jasmine和Angular中测试ngOnInit的代码逻辑

如何使用Jasmine和Karma测试DOM和CSS

使用 jasmine 和 angular 对基类进行单元测试

什么是包含集成测试以及如何将它们设置

netbeans中的标签或功能?它们是什么以及如何使用它们?

TensorFlow字符串:它们是什么以及如何使用它们

Angular JS和Twitter API,如何连接它们

iOS - 如何区分 UI 和单元测试,以及如何在这种具体情况下使用它们?