【问题标题】:Why angular need browser to run unit tests为什么 Angular 需要浏览器来运行单元测试
【发布时间】:2018-10-30 21:01:46
【问题描述】:

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

【问题讨论】:

    标签: angular karma-runner angular-unit-test


    【解决方案1】:

    据我们所知,三个主要组件协同工作以帮助我们以 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 后,将在 watch 模式 下构建应用程序并启动 karma 测试运行器。然后 karma 将针对源代码执行每个测试用例,并通过命令行和浏览器显示输出。 (大多数人发现此浏览器输出比控制台日志更易于阅读)。

    【讨论】:

      猜你喜欢
      • 2010-09-29
      • 2019-07-23
      • 2011-08-05
      • 2019-11-09
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      相关资源
      最近更新 更多