本篇文章给大家介绍一些angular中关于单元测试的面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
angular中的测试有哪些种,基于哪些测试框架angular的测试主要包括单元测试(unit test)和端到端测试(e2e)。
单元测试(unit test):基于jasmine和karma。jasmine是一套通用的测试框架,除了angular之外,也有广泛引用;karma是angular专用的用于管理测试配置等的框架,让测试代码方便的在指定浏览器执行;另外,根据喜好,也可以选择 mocha 和 chai。端到端测试(e2e):基于protractor。protractor是angular专用的e2e框架。【相关教程推荐:《angular教程》】什么是karma? 在angular中有什么作用?
karma是用于在浏览器环境中针对测试代码执行源代码的工具。 它支持在为其配置的每个浏览器中运行测试。 同时将结果显示在命令行和浏览器上,或者输入标准格式的报表,供开发人员检查哪些测试通过或失败。 karma还会监视文件,并且只要文件发生更改,就可以触发测试重新运行。 同时karma还可以统计代码覆盖率(code coverage)。
在angular项目的根目录下,我们具有用于配置karma的文件karma.conf。
什么是jasmine? 在angular中有什么用?
jasmine是一个javascript测试框架,支持称为行为驱动开发或简称bdd的软件开发实践。 这是测试驱动开发(tdd)的一种特殊风格。
jasmine和bdd通常尝试以一种人类可读的格式描述测试,以便非技术人员可以理解所测试的内容。
什么是protractor?
protractor是angular的端到端测试框架。 它在真实的浏览器中运行测试,并像真实的人一样与之交互。 与单元测试不同,在单元测试中,我们测试各个功能,而在这里,我们测试整个逻辑。 protractor能够填写表格,单击按钮,并确认预期的数据和样式显示在html文档中。
就像karma一样,protractor在angular项目的根目录protractor.conf中拥有自己的配置文件。
单元测试 unit test什么是angular中的单元测试?
单元测试用于测试隔离中的单个功能,单个组件,特点是隔离和之星快。在此单元测试中,我们不能说应用程序中的一切都很好,而是仅针对单个单元或功能,即可确保正常工作。
angular ut的最佳实践
在beforeeach() 中初始化使用到的上下文;describe(),it() 中的描述要清晰。方便阅读,方便测试失败时快速定位;使用after() ,aftereach()重置测试改变的全局状态;每1个具体测试用例,不要过于复杂,尽量保证在15行代码以内什么是testbed,有什么作用
testbed 就是angular测试工具集(@angular/core/testing)提供的用于构建一个 @ngmodule 测试环境模块。可以
testbed.configuretestingmodule,准备测试环境
利用 testbed.createcomponent 创建一个用于测试目标组件的测试组件
测试service时,有其他依赖如何处理?
使用testbed创建用例是,将依赖项加到providers中
testbed.configuretestingmodule({ providers: [yourdependencyservice]});
端到端测试(e2e)基于protractor,测试成本比较高,一般能覆盖阳光测试用例(sunny case)即可。
更多编程相关知识,请访问:编程入门!!
以上就是angular中关于单元测试的面试题,你能回答上来吗?的详细内容。