为什么 angular 需要浏览器来运行单元测试

Roh*_*kar 1 karma-runner angular angular-unit-test

当我们运行 angular 单元测试时,它会启动 chrome 浏览器或 karma.config.js 中提供的浏览器。为什么浏览器需要以及运行 angular 单元测试时到底发生了什么。

Anu*_*ara 5

正如我们所知,有三个主要组件协同工作来帮助我们以 angular 编写单元测试。他们是

业力

Karma 本质上是一个工具,它生成一个 Web 服务器,该服务器针对连接的每个浏览器的测试代码执行源代码。对每个浏览器的每个测试的结果进行检查并通过命令行显示给开发人员,以便他们可以查看哪些浏览器和测试通过或失败。

可以通过访问 Karma 服务器正在侦听的 URL(通常为http://localhost:9876/)手动捕获浏览器,也可以通过让 Karma 知道在运行 Karma 时启动哪些浏览器来自动捕获浏览器。Karma 还会监视配置文件中指定的所有文件,并且每当任何文件发生更改时,它都会通过向测试服务器发送信号以通知所有捕获的浏览器再次运行测试代码来触发测试运行。然后,每个浏览器将源文件加载到 IFrame 中,执行测试并将结果报告回服务器。

服务器从所有捕获的浏览器中收集结果并将它们呈现给开发人员。

茉莉花

Jasmine 是一个行为驱动的开发框架,用于测试 JavaScript 代码。它不依赖于任何其他 JavaScript 框架。它不需要 DOM。它有一个干净、明显的语法,所以你可以很容易地编写测试。茉莉花由三个主要成分组成。它们是测试服测试规范测试期望

角度测试工具

这些是 angular 团队引入的实用程序类和函数,以帮助开发人员为 angular 编写单元测试。就像测试组件模板一样。


当我们运行 Angular 单元测试时,它会启动 Chrome 浏览器或 karma.config.js 中提供的浏览器。为什么浏览器需要以及运行 angular 单元测试时到底发生了什么。

所以现在你应该知道当我们ng test在 Angular 项目中运行命令时发生了什么。

运行命令后,angular 将在监视模式下构建应用程序并启动 karma 测试运行程序。然后 karma 将针对源代码执行每个测试用例,并通过命令行和浏览器显示输出。(大多数人发现此浏览器输出比控制台日志更易于阅读)。