📝 JasmineJS教程

17篇技术文档
  JasmineJS教程

📅  最后修改于: 2020-10-23 06:33:08        🧑  作者: Mango

Jasmine是JavaScript开发人员处理繁忙测试过程的最受欢迎工具之一。它是一种开源技术。它是一个简单的API,用于测试JavaScript的不同组件。本教程讨论Jasmine.js的基本功能以及相关示例,以便于理解。听众本教程已为初学者准备,以帮助他们了解Jasmine测试过程的基本概念。先决条件这是一个非常基础的教程,对任何具有基本计算机编程知识的读者都应该是有用的。...

  JasmineJS-概述

📅  最后修改于: 2020-10-23 06:33:25        🧑  作者: Mango

Jasmine是一个开放源代码的JavaScript框架,能够测试任何类型的JavaScript应用程序。 Jasmine遵循行为驱动开发(BDD)过程,以确保对JavaScript语句的每一行都进行了正确的单元测试。通过遵循BDD过程,Jasmine提供了一种小的语法来测试整个应用程序的最小单元,而不是整体测试。为什么使用茉莉花?以下是与其他可用的JavaScript测试框架相比,使用Jasmi...

  JasmineJS-环境设置

📅  最后修改于: 2020-10-23 06:33:45        🧑  作者: Mango

在本章中,我们将讨论如何设置基于Jasmine的BDD测试应用程序的分步过程。步骤1-转到茉莉花官方网站https://jasmine.github.io/步骤2-单击任何版本链接。最好使用最新版本的“ Edge”。您将被重定向到所选版本的主页。步骤3-转到主页的下载部分,然后单击独立发行版页面。步骤4-一旦您重定向到github发布页面,请从那里下载Zip文件。步骤5-解压缩下载的jasmine...

  JasmineJS-BDD体系结构

📅  最后修改于: 2020-10-23 06:34:14        🧑  作者: Mango

Jasmine遵循行为驱动开发(BDD)框架。在学习Jasmine的工作原理之前,让我们知道什么是BDD框架。以下流程图描述了BDD框架的不同阶段。步骤1-开始在此阶段,我们将为Jasmine应用程序准备好环境。第2步-编写失败的测试在这一步中,我们将编写我们的第一个测试用例。显然,该测试将失败,因为没有要测试的文件或函数。步骤3-编写代码以使其通过在此阶段,我们将准备需要测试的JavaScrip...

  JasmineJS-匹配器

📅  最后修改于: 2020-10-23 06:34:43        🧑  作者: Mango

Jasmine是一个测试框架,因此它始终旨在将JavaScript文件或函数的结果与预期结果进行比较。 Matcher在Jasmine框架中的工作方式类似。匹配器是JavaScript函数,它在实际输出和预期输出之间进行布尔比较。匹配器有两种类型:内置匹配器和自定义匹配器。内置匹配器在Jasmine框架中内置的匹配器称为内置匹配器。用户可以轻松地隐式使用它。以下示例显示了内置匹配器在Jasmine...

  JasmineJS-跳过块

📅  最后修改于: 2020-10-23 06:35:03        🧑  作者: Mango

Jasmine还允许开发人员跳过一个或多个测试用例。这些技术可以在规格级别或套件级别应用。根据应用程序级别,此块可以分别称为“跳过规范”和“跳过套件”。在以下示例中,我们将学习如何使用“ x”字符跳过特定的Spec或Suite。跳过规格我们将使用“X”只是其语句之前修改前面的例子。如果运行此JavaScript代码,则在浏览器中将收到以下输出。 Jasmine本身会使用“ xit”通知用户暂时禁用...

  JasmineJS-布尔检查

📅  最后修改于: 2020-10-23 06:35:22        🧑  作者: Mango

除了相等检查外,Jasmine还提供了一些检查布尔条件的方法。以下是帮助我们检查布尔条件的方法。ToBeTruthy()在Jasmine中,此布尔值匹配器用于检查结果是否等于true或false。以下示例将帮助我们理解toBeTruthy()函数的工作原理。ExpectSpec.jsExpectexam.js当我们通过小于5的数字5时,此测试用例将通过并提供以下输出。如果我们通过的数字大于10,则...

  JasmineJS-顺序检查

📅  最后修改于: 2020-10-23 06:35:49        🧑  作者: Mango

Jasmine还提供了不同的方法来提供JS输出的顺序。以下示例显示了如何使用Jasmine实现顺序检查。包含装有()toContain()匹配器为我们提供了检查任何元素是同一数组的一部分还是其他顺序对象的工具。以下示例将帮助我们理解Jasmine toContain()方法的工作方法。让我们在先前创建的customerMatcherSpec.js文件中添加以下代码。在上面的示例中,我们正在检查该数...

  JasmineJS-空检查

📅  最后修改于: 2020-10-23 06:36:24        🧑  作者: Mango

Jasmine提供了多种方法来检查实际输出是Null,已定义还是未定义。在本章中,我们将学习如何实现不同的Jasmine方法来检查上述情况。被定义为()该匹配器用于检查代码中是否预定义了任何变量。让我们根据此示例修改我们的customerMatcherSpec.js文件。在上面的代码中,toBeDefined()将检查变量currentVal是否在系统中定义。由于在开始时将currentVal定义...

  JasmineJS-不平等检查

📅  最后修改于: 2020-10-23 06:36:49        🧑  作者: Mango

到目前为止,我们已经在Jasmine中讨论了不同的方法,这些方法可以帮助我们根据需求测试不同的场景。在本章中,我们将学习不同的匹配器,这些匹配器将帮助我们检查JS文件中的不相等条件。以下是用于此目的的匹配器。ToBeGreaterThan()顾名思义,该匹配器有助于检查是否超出条件。让我们使用以下代码修改我们的customerMatcher.js。在上面的代码中,我们期望变量“ exp”的值将大于...

  JasmineJS-不是数字检查

📅  最后修改于: 2020-10-23 06:37:09        🧑  作者: Mango

Jasmine提供了一个特殊的匹配器来检查这种特殊的测试场景,即toBeNaN()。让我们用以下代码修改我们的customerMatcher.js。在这里,我们要测试无法确定的“ 0/0”值是多少。因此,这段代码将生成以下绿色屏幕截图。现在,让我们再次使用以下逻辑修改代码,在该逻辑中,我们将一个变量exp分配给25,并期望结果不是将其除以5的结果。这段代码将产生以下输出。...

  JasmineJS-异常检查

📅  最后修改于: 2020-10-23 06:37:49        🧑  作者: Mango

除了不同的计算匹配器之外,Jasmine还提供了一些有用的匹配器来检查程序的异常。让我们用以下代码集修改JavaScript。在上面的示例中,我们创建了一个方法,该方法故意从该方法引发异常,并且在Expect块中,我们希望捕获该错误。如果一切顺利,那么这段代码将产生以下输出。现在,为了使该测试用例失败,我们需要在函数throwMeAnError中忽略该throw语句。以下是代码,由于该代码不满足我...

  JasmineJS-beforeEach()

📅  最后修改于: 2020-10-23 06:38:08        🧑  作者: Mango

茉莉的另一个显着特点是在每个函数之前和之后。使用这两个功能,我们可以在执行每个规范之前和之后执行一些代码。此功能对于在应用程序中运行通用代码非常有用。让我们创建一个如下的规范文件。在这里,尽管我们在一开始就将一个变量声明为“ 0”,但是我们期望在期望块中该值应等于5。上面的代码将生成以下输出。在上面的代码中,将在执行Expect块之前将5分配给变量currentVal。因此,它将生成没有错误的绿色...

  JasmineJS-afterEach()

📅  最后修改于: 2020-10-23 06:38:26        🧑  作者: Mango

像beforeEach()一样,afterEach()的工作方式也完全相同。它在执行spec块之后执行。让我们使用以下代码修改前面的示例。在上面的示例中,在运行第一个spec块时,currentVal的值为0。因此,它将通过测试用例,但在运行第一个spec块后,Jasmine编译运行afterEach()块,从而使currentVal设为5。因此,它也满足第二种情况,并产生绿色的屏幕截图作为输出。...

  JasmineJS-间谍

📅  最后修改于: 2020-10-23 06:38:53        🧑  作者: Mango

茉莉间谍是另一个功能,其功能与名称所指定的完全相同。它将允许您监视应用程序函数调用。茉莉中提供了两种类型的间谍技术。第一种方法可以通过使用spyOn()来实现,第二种方法可以通过使用createSpy()来实现。在本章中,我们将学习有关这两种方法的更多信息。暗中监视()spyOn()内置在Jasmine库中,它使您可以监视一段确定的代码。让我们创建一个新的spec文件“ spyJasmineSpe...