JavaScript 单元测试

这篇具有很好参考价值的文章主要介绍了JavaScript 单元测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在测试领域,检查单个功能与测试整个应用程序端到端是不同的。虽然两者同样重要,但测试每个功能(也称为单元)是必要的,以确保应用程序中的每个函数都按预期执行。这就是单元测试的作用。

截至2022年,98%的网站使用JavaScript作为客户端编程语言,这显示了它的日益流行。

由于JavaScript或JS是一种流行且不断发展的用于开发Web应用程序的编程语言,因此有必要了解如何在JavaScript中执行单元测试。本文将探讨如何执行这些测试,这些测试应该在哪里运行以及为什么。

什么是单元测试?

单元测试验证系统中软件单元的行为。它验证称为“单元”的代码库的小而孤立的部分是否按照开发人员的意图行为。

单元测试通过将其实际行为与完全隔离的预期行为进行比较,验证应用程序的最小部分或组件。

在这里,“完全隔离”意味着在单元测试期间,开发人员不会将应用程序与外部依赖项(例如数据库,文件系统或HTTP服务)连接起来。

这使得单元测试快速和稳定,因为它们不会因为与那些外部服务集成的问题而失败。

1. 不要测试系统接口或第3方库

例如以下函数:

```js

        function getLocation() {

                return window.location

        }

```

为什么编写单元测试?

通常,开发人员首先编写单元测试,然后编写软件代码。这种方法称为测试驱动开发(TDD)。

在TDD中,将需求转化为具体的测试用例,然后改进软件以通过新测试。

在单元测试的情况下,它允许在不影响其他单元或软件功能的情况下修改代码。这使得开发人员的工作更加容易,因为在此阶段很容易定位错误,从而节省时间和金钱。

此外,在单元测试环境中,产品的各个模块相互隔离并具有自己的责任区域。

在这种情况下,测试更可靠,因为它们在一个封闭的环境中运行。由于可靠性,代码也变得可靠。

除了上述事实,让我们探讨单元测试的各种好处。

单元测试的好处

  1. 单元测试的主要优点是它们的锐利关注点。由于它们测试单个功能,它们提供精确的反馈。如果单元测试失败,在大多数情况下,测试人员可以确定正在测试的特定功能是问题所在。
  2. 单元测试有助于快速轻松地查找和修复错误。
  3. 单元测试有助于提高代码质量。
  4. 单元测试有助于改善应用程序架构。
  5. 单元测试充当文档。
  6. 单元测试也以其速度而闻名。由于它们快速,它们经常执行,成为几乎持续提供有价值反馈的来源。

创建单元测试的最佳实践

创建单元测试时应遵循以下最佳实践:

  • 测试应该快速简单,这意味着开发人员需要以更高的速度运行测试用例,因为它服务于单元测试的目的。如果它们很慢,开发人员将不会像应该那样经常运行测试用例。此外,单元测试用例越简单,测试结果越准确。
  • 测试用例不重复实现逻辑。
  • 测试用例应该是确定性的-只要它们的代码不变,就表现出相同的行为。
  • QAs必须在真实的浏览器和设备上执行测试,而不是在仿真器和模拟器上执行测试,以保持测试的确定性。如果没有接触实际的生产环境(真实的,功能真实的设备),测试结果将远远不确定或准确。
  • 为测试用例采用有影响力的命名约定

JavaScript单元测试框架

JavaScript单元测试是一种方法,在其中为Web页面或应用程序模块编写JavaScript测试代码。

然后将其与HTML作为内联事件处理程序组合,并在浏览器中执行,以测试所有功能是否按预期工作。然后将这些单元测试组织在测试套件中。

以下JavaScript测试框架有助于在JavaScript中进行单元测试。它们如下:

1. Unit.js

        一个用于JavaScript的断言库,在Node.js和浏览器上运行。它与任何测试运行器和单元测试框架(如Mocha,Jasmine,Karma,protractor(用于Angular应用程序的E2E测试框架),QUnit等)一起使用。

2. Mocha

Mocha是一个测试框架,既可以在Node.js中运行,也可以在浏览器中运行。该框架通过串行运行测试使异步测试变得简单。Mocha测试串行运行,允许灵活和准确的报告,同时将未捕获的异常映射到正确的测试用例。它提供对所有浏览器的支持,包括无头Chrome库,并方便开发人员编写测试用例。

3. Jest

它是一个基于JavaScript构建的开源测试框架,主要设计用于与基于React和React Native的Web应用程序一起使用。通常,当在任何软件的前端运行单元测试时,它们并不是非常有用。这主要是因为前端的单元测试需要广泛的,耗时的配置。使用Jest框架可以大大减少这种复杂性。

4. Jasmine

Jasmine是一种流行的JavaScript行为驱动开发框架,用于单元测试JavaScript应用程序。它提供了运行同步和异步代码的自动化测试的实用程序。它也非常有利于前端测试。

5. Karma

Karma是一个基于节点的测试工具,允许您在多个浏览器中测试JavaScript代码。它使测试驱动开发变得快速,有趣和容易,并在技术上被称为测试运行器。

6. Cypress

Cypress框架是基于Mocha构建的基于JavaScript的端到端测试框架-一个功能丰富的JavaScript测试框架,可在浏览器中运行异步测试,使其变得简单和方便。在Cypress中进行单元测试甚至不需要运行Web服务器。这使得Cypress成为测试旨在在浏览器中使用的JS / TS库的理想工具。

7. NightwatchJS

Nightwatch.js框架是基于Selenium的测试自动化框架,用Node.js编写,并使用W3C WebDriver API(以前是Selenium WebDriver)。它使用与WebDriver服务器(例如ChromeDriver或Selenium Server)通信的restful HTTP API。协议由W3C WebDriver规范定义,该规范源自JSON Wire协议。

编写测试用例

编写测试用例时,应遵循以下最佳实践:

  • 对测试用例采用有影响力的命名约定
  • 测试用例应该具有最简单可测试的单元功能,并尽可能独立于其他代码
  • 在测试用例中涵盖功能的正常和边缘情况
  • 使用断言库对测试结果进行验证

参考链接:

JavaScript Unit Testing Tutorial | BrowserStack

test-driven development (TDD)

Best Practices for Unit Testing

Front End Testing: A Beginner's Guide | BrowserStack

Front End Testing: A Beginner's Guide | BrowserStackJest vs Mocha vs Jasmine文章来源地址https://www.toymoban.com/news/detail-754876.html

到了这里,关于JavaScript 单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从0开始学习JavaScript--JavaScript 单元测试

    JavaScript单元测试是保障代码质量和可维护性的关键步骤之一。通过编写和运行单元测试,开发者可以确保代码在不断迭代的过程中依然具有正确的行为。本文将深入探讨JavaScript单元测试的核心概念、工具使用和最佳实践,并通过丰富的示例代码演示其实际应用。 1.1 什么是单

    2024年02月04日
    浏览(35)
  • JavaScript 单元测试

    在测试领域,检查单个功能与测试整个应用程序端到端是不同的。虽然两者同样重要,但测试每个功能(也称为单元)是必要的,以确保应用程序中的每个函数都按预期执行。这就是单元测试的作用。 截至2022年,98%的网站使用JavaScript作为客户端编程语言,这显示了它的日

    2024年02月05日
    浏览(30)
  • GO——单元测试(test)

    go test用来做什么 做单元测试,测试函数是否符合预期 go test在哪个包 testing 如何使用 参考: https://geektutu.com/post/quick-go-test.html 以 my_func.go 中的Add方法为例 在同一个文件夹下添加my_func_test.go文件 测试文件以_test.go为结尾 里面的测试方法以Test开头,但是不一定是要跟方法名,

    2024年01月20日
    浏览(48)
  • 仿真与测试:单元测试与Test Harness

    本文描述单元测试的概念,以及Test Harness建立的方法和简单的单元测试过程。 单元测试,简单来说就是在Simulink模型中只测试一小部分单元的功能。关于单元测试的概念网上有很多资料了,这里不再赘述。博主从实际工作经验的角度来谈谈单元测试的价值。 举个简单的例子,

    2024年02月04日
    浏览(47)
  • Springboot的Test单元测试操作

    Springboot的Test单元测试操作 简单总结需要操作的步骤 1,导入依赖 2,创建目录(目录和启动类的目录保持一致) 3,添加注解 4,写方法测试 1,导入依赖 2,创建目录(目录和启动类的目录保持一致),并test目录绿色标记一下 3,添加注解 注意的是,这里的test的类路径impo

    2024年04月25日
    浏览(37)
  • 使用Simulink Test进行单元测试

    本文摘要:主要介绍如何利用Simulink Test工具箱,对模型进行单元测试。内容包括,如何创建Test Harness模型,如何自动生成excel格式的测试用例模板来创建测试用例,如何手动填写excel格式的测试用例模板来手动创建测试用例。 单元测试的目的 创建完模型后,我们需要验证模型

    2024年02月16日
    浏览(41)
  • vitest单元测试配合@vue/test-utils之组件单元测试篇

    vitest 是由 vite 提供支持的极速单元测试框架,VueTestUtils 是 Vue.js 的官方测试实用程序库,vitest 本身是不支持单元组件测试的,需要配合 test-utils 来完成组件单元测试,安装与基本 API 就不再赘述,学会阅读文档与查找资料是一个程序员的基本功 demo 由一个组件和测试文件组成

    2024年03月16日
    浏览(54)
  • IDEA中 单元测试@Test的使用

    首先我在自己的module-zzz中有hamcrest-core-1.3.jar 和 Junit-4.12.jar两个包 ,并且可以正常使用test测试方法。要想在另外一个module-chapter01中正常使用test,则可以进行如下操作:第一步:File -- Project Structure -- Modules–Dependencies 第二步:点击右上角的+  第三步:点击JARs or directories…

    2024年02月07日
    浏览(49)
  • idea中用不了test单元测试插件

    这是因为你没有安装test相关的插件,我们需要下载一个插件,   首先打开idea--File--setting--plugins(如下图) 搜索Junit,然后安装第一个插件,重启应用即可使用。 注意:在实际程序应用中,我们输入@test后,还要Alt+Enter进行导包。 安装好插件后就可操作了,

    2024年02月12日
    浏览(41)
  • idea中添加单元测试@Test注解引入

    添加依赖,使用 @Test 即可。 @Test注解找不到或没有的原因: 我们要进行项目的某部分的test测试,会放在名为test的文件夹下,而现在我们的文件夹测试并不是test下面的一个测试,所以如果我们希望在别的地方也可以利用test注解,只需要去掉scope这一行就行了。

    2024年02月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包