当我们运行角度单位测试时,它会启动chrome浏览器或karma.config.js中提供的浏览器。为什么浏览器需要以及在角度单元测试运行时发生了什么。
答案 0 :(得分:3)
我们知道有三个主要组件协同工作以帮助我们以角度方式编写单元测试。他们是
Karma本质上是一个产生Web服务器的工具,该服务器针对连接的每个浏览器执行针对测试代码的源代码。检查每个浏览器的每个测试结果,并通过命令行显示给开发人员,以便他们可以看到哪些浏览器和测试通过或失败。
可以通过访问Karma服务器正在侦听的URL(通常为http://localhost:9876/)手动捕获浏览器, 或者让Karma知道在运行Karma时要启动哪些浏览器。 Karma还会监视配置文件中指定的所有文件,并且每当任何文件发生更改时,它都会通过向测试服务器发送信号来通知所有捕获的浏览器再次运行测试代码来触发测试运行。然后,每个浏览器将源文件加载到IFrame中,执行测试并将结果报告回服务器。
服务器收集所有捕获的浏览器的结果,并将它们呈现给开发人员。
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架。它不依赖于任何其他JavaScript框架。它不需要DOM。它具有干净,明显的语法,因此您可以轻松编写测试。茉莉花由三个主要部分组成。它们是测试套装,测试规格和测试期望
这些是由角度团队引入的实用程序类和函数,以帮助开发人员编写角度单元测试。就像测试组件模板一样。
当我们运行Angular单元测试时,它会启动Chrome浏览器,或者在karma.config.js中提供。为什么浏览器需要以及角度单元测试运行时究竟发生了什么。
现在,您应该知道在Angular项目中运行命令ng test
时发生了什么。
运行命令后,angular将在监视模式中构建应用程序并启动karma测试运行器。然后,业力将针对源代码执行每个测试用例,并通过命令行和浏览器显示输出。 (大多数人发现这个浏览器输出比控制台日志更容易阅读。)