不再能使用 ddescribe 或 iit

在前端开发中,我们经常会使用 Jasmine 这样的测试框架来进行单元测试。然而,在最新版本的 Jasmine 中,一些我们熟悉的函数 ddescribeiit 已经被弃用了。

什么是 ddescribe 和 iit?

在 Jasmine 中,describeit 是两个基本的测试函数。其中,describe 用于组织测试用例,而 it 则是实际的测试用例。在这两个函数之外,Jasmine 还提供了 ddescribeiit 函数,它们的作用分别是:

  • ddescribe:只运行当前代码块(即 describe 块或 it 块)中的测试用例,而忽略其他测试用例。
  • iit:只运行当前的测试用例,而忽略同级别的其他测试用例。

这两个函数在调试和排除问题时非常有用,可以帮助我们快速定位问题所在。

为什么不再支持 ddescribe 和 iit?

虽然 ddescribeiit 在某些情况下很方便,但它们也容易被误用。比如,一个开发者可能在进行调试时使用了 ddescribe 来快速定位问题,但由于忘记将其删除,结果导致测试覆盖率不完整。这种情况下,代码库就会出现无法预测的行为。

因此,在最新版本的 Jasmine 中,ddescribeiit 已经被弃用了,我们应该使用其他方法来调试和排除问题。

如何替代 ddescribe 和 iit?

目前,Jasmine 官方提供了两种替代方式:

1. 使用 fit 和 fdescribe

fitfdescribeiitddescribe 的替代函数。它们的作用分别是:

  • fdescribe:只运行当前代码块中的测试用例,并且在运行时将所有其他代码块置于 pending 状态。
  • fit:只运行当前的测试用例,而忽略同级别的其他测试用例,并且在运行时将所有其他测试用例置于 pending 状态。

iitddescribe 不同的是,fitfdescribe 在测试运行时会抛出警告,以提醒开发者对其进行清理。

示例代码:

---------------- ---------- -
  ---------------- -------- -------- ---------- -
    -------- --- ---------- -
      ------------------------
    ---
    -------- --- ---------- -
      --------------------------
    ---
  ---

  ---------------- ---------- -
    -------- --- ---------- -
      ------------------------
    ---
    ---------------- ---------- -
      --------------------------
    ---
    -------- --- ---------- -
      ------------------------
    ---
  ---
---

2. 使用过滤器

Jasmine 还提供了一种使用过滤器来快速定位问题的方法。我们可以在命令行中运行 jasmine 命令,并使用 --filter 参数来指定我们要运行的测试用例,比如:

- ------- -------- ----- --

这样就可以只运行名称中包含 "测试用例 3" 的测试用例了。

结论

虽然 ddescribeiit 在某些情况下很方便,但由于它们容易被误用,因此在最新版本的 Jasmine 中已

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/27555


猜你喜欢

  • 在JavaScript中定义只读属性

    JavaScript是一种弱类型语言,这意味着我们可以随时更改对象的属性。但是,在某些情况下,我们可能希望防止对对象的特定属性进行更改。在这种情况下,我们可以使用只读属性。

    7 年前
  • 在 Electron 中如何访问 DOM 元素?

    Electron 是一个流行的跨平台桌面应用程序开发工具,它使用 HTML、CSS 和 JavaScript 技术栈来构建本机桌面应用程序。在 Electron 应用程序中,我们可能需要访问 DOM ...

    7 年前
  • 通过自定义事件传递附加数据的方法

    在前端开发中,我们通常使用事件来实现不同组件之间的通信。但是,在一些情况下,我们可能需要将额外的数据传递给事件监听器。那么,有没有一种方法可以通过自定义事件来传递这些附加数据呢?本文将详细介绍这个问题...

    7 年前
  • 如何检测文本区域输入中的换行符?

    在前端开发中,很多时候需要从文本框、文本区域等表单元素中获取输入数据。但是,在这些文本输入框中,用户可能会使用换行符来分隔不同的内容,如何有效地检测和处理这些换行符成为了一个常见的问题。

    7 年前
  • 防止在 input type number 中输入非数字

    背景 在一些需要用户输入数字的场景中,我们通常使用 HTML5 中的 input 标签,并将其类型 type 设置为 number。但是,这种输入框的输入方式不仅仅限制了用户只能输入数字,还允许他们输...

    7 年前
  • 如何通过显示文本设置 select 元素的 selectedIndex?

    select 元素是前端开发中常用的表单元素之一,它可以让用户选择一个或多个选项。通常情况下,我们使用 option 的 value 属性来获取被选中选项的值。但是,有时候我们需要根据显示文本来设置 ...

    7 年前
  • 从HTMLElement中获取google.maps.Map实例

    在前端开发中,使用Google Maps JavaScript API可以很容易地将Google地图嵌入到网站中。然而,在某些情况下,您可能需要从现有的HTML元素中获取一个地图对象的引用,以便在代码...

    7 年前
  • 如何反转 String.fromCharCode?

    在前端开发中,我们有时需要对字符串进行各种操作,其中之一是将其反转。如果你使用了 String.fromCharCode() 方法来创建字符串,则需要知道如何反转该字符串。

    7 年前
  • 如何检查表单元素是否为空?

    在前端开发中,经常需要验证表单数据的有效性,其中一个常见的需求是检查表单元素是否为空。本文将介绍如何使用 JavaScript 和 jQuery 检查表单元素是否为空,并提供示例代码和指导意义。

    7 年前
  • JSON schema : "allof" with "additionalProperties"

    在前端开发中,JSON 是一种常见的数据格式。JSON Schema 则是描述 JSON 数据结构的一个标准。通过使用 JSON Schema,我们可以对传输的数据进行验证和定义,使得数据的格式更加规...

    7 年前
  • Inherit parent constructor arguments

    在前端开发中,我们常常需要继承父类的构造函数参数,并在子类中使用。本文将介绍如何实现这一功能并提供示例代码。 父类构造函数 首先,我们需要定义一个父类构造函数,如下所示: -------- -----...

    7 年前
  • Ember.js 中如何操作数组 push/pop?

    在 Ember.js 中,我们经常需要操作数组。最常见的是推入(push)和弹出(pop)元素。本文将介绍如何在 Ember.js 中进行这些操作。 推入元素 要推入一个元素到数组中,我们可以使用 p...

    7 年前
  • 如何在JavaScript中手动设置REFERER头?

    在Web开发中,HTTP Referer头是一个非常重要的属性。这个属性通常告诉服务器请求来源页面的URL,让服务器能够跟踪用户浏览行为,并进行一些相关的操作。 然而,有时候我们需要手动控制Refer...

    7 年前
  • 在 AngularJS Promise 上使用多个 `.then()`,并保留原始数据

    AngularJS 是一个经典的前端框架,在应用程序中使用 Promise 可以更有效地处理异步操作。在使用 Promise 时,我们通常需要在其上执行多个后续操作,以便在不同的阶段获取处理结果。

    7 年前
  • 如何从 Javascript 中获取 HTML5 本地存储中的项目列表

    HTML5 提供了本地存储功能,可以在客户端浏览器中存储数据。而 JavaScript 可以轻松地从本地存储中获取数据。本文将探讨如何使用 JavaScript 获取 HTML5 本地存储中的项目列表...

    7 年前
  • JavaScript 正则表达式:ISO 日期时间格式

    在前端开发中,经常需要处理日期和时间。其中,ISO 标准日期时间格式是一种通用的格式,被广泛应用于数据交换和存储等方面。然而,处理这种格式并不是很容易。本文将介绍如何使用 JavaScript 正则表...

    7 年前
  • Safari JS 无法解析 YYYY-MM-DD 日期格式?

    最近在前端开发中,我遇到了一个奇怪的问题:Safari 浏览器无法正确解析 YYYY-MM-DD 格式的日期字符串。经过进一步研究,我发现这是因为 Safari 对于该日期格式的解析存在一些问题,而其...

    7 年前
  • Google Maps v3 - 如何在初始化时使用地址居中显示地图?

    Google Maps是一个广泛使用的Web地图应用程序,允许用户查看世界上的任何地方。在使用Google Maps API V3创建交互式地图时,有时需要根据地址或经纬度定位地图位置。

    7 年前
  • 如何避免在设置 DOM 对象属性时引发 no-param-reassign 错误

    在前端开发中,我们经常需要更新或设置 DOM 元素的属性。但是,当我们尝试直接修改传递给函数的对象参数时,ESLint 可能会抛出一个名为“no-param-reassign”的错误。

    7 年前
  • event.toElement 在IE8和Firefox中的差异

    在前端开发中,事件处理是一个重要的方面。当我们处理鼠标或键盘事件时,经常需要访问触发事件的元素。在早期版本的浏览器中,event.srcElement和event.toElement是用于获取触发事件...

    7 年前

相关推荐

    暂无文章