JasmineJS - 编写文本和执行


在本章中,我们将创建一个hello world 应用程序来测试我们的“helloworld.js”文件。在开发 hello world 应用程序之前,请返回上一章并确保您的环境已准备好使用 Jasmine 进行测试。

第 1 步 - 在 IDE 中创建 Web 应用程序

在这里,我们使用 NetBeans 8.1 在 Jasmine 中开发我们的 hello world 应用程序。在 NetBeans 中,转到文件 → 新建项目 → Html5/JS 应用程序并创建一个项目。创建项目后,项目目录应如下图所示。我们将项目命名为Jasmine_Demo

演示

步骤 2 - 将 Jasmine lib 文件包含到应用程序中

创建演示项目后,您所需要做的就是将 Jasmine 库的解压缩文件夹包含在创建的应用程序的 Unit Tests 文件夹中。将所有库文件添加到我们的应用程序文件夹后,我们的项目的结构将如下图所示。

项目结构

specsrc文件夹下给出的文件是 Jasmine 团队提供的演示文件。删除这些文件,因为我们将创建自己的测试文件和测试用例。在删除这些 JavaScript 文件时,我们需要删除输出 html 文件SpecRunner.html中这些文件的引用。

以下是 SpecRunner.html 文件的屏幕截图,其中specsrc中不同 JavaScript 文件的引用将被删除。

SpecRunner Html 文件

第 3 步 - 创建 JavaScript 文件

在此步骤中,我们将在src文件夹下创建一个名为helloworld.js的 JavaScript 文件。这是我们将通过 Jasmine 测试的文件。创建 JavaScript 文件后,在文件中附加以下代码集。

/*         
* This is the JavaScript file that need to be tested through jasmine   
* Below is the helloworld function that will return 'Hello World' 
*            
*/    

var helloworld = function() {   
   return 'Hello World'; 
}; 

第 4 步 - 创建测试用例

在此步骤中,我们将创建另一个 JavaScript 文件,其中包含上述 JavaScript 文件的测试用例。继续在“Spec”文件夹下创建一个 JavaScript 文件,并将其命名为“HelloWorldsSpec.js”。将以下代码行添加到此js文件中。

/*            
* This is the file which will call our java script file that need to be tested. 
* Each describe block is equivalent to one test case    
*     
*/    

describe("Hello World", function() { 
   
   it("should Return Hello world",function() { 
      expect(helloworld()).toEqual('Hello World'); 
   }); 

});

步骤 5 - 添加对输出文件的引用

我们成功创建了自己的待测试文件以及相应的测试用例。我们将其保存在两个不同的文件夹下。在此步骤中,我们将修改“SpecRunner.html”以包含这两个新创建的文件的引用。

<!DOCTYPE html> 
    
<html>    
   <head>    
      <meta charset = "utf-8"> 
    
      <title>Jasmine Spec Runner v2.4.1</title>  
		
      <link rel = "shortcut icon" type = "image/png" href = 
      "lib/jasmine2.4.1/jasmine_favicon.png">  
      <link rel = "stylesheet" href = "lib/jasmine-2.4.1/jasmine.css"> 
		
      <script src = "lib/jasmine-2.4.1/jasmine.js"></script>
      <script src = "lib/jasmine-2.4.1/jasmine-html.js"></script>
      <script src = "lib/jasmine-2.4.1/boot.js"></script> 

      <!--Lines to be deleted  
      <script src = "src/Player.js"></script> 
      <script src = "src/Song.js"></script> 
      <script src = "spec/SpecHelper.js"></script>    
      <script src = "spec/PlayerSpec.js"></script> --> 

      <!--adding the reference of our newly created file ---> 

      <script src = "src/helloworld.js"></script> 
      <script src = "spec/HelloWorldsSpec.js"></script> 
   </head>   

   <body>   
   </body>   

</html>

步骤 6 - 通过运行 SpecRunner.html 来执行

这是我们应用程序开发的最后一步。在您喜欢的任何浏览器中运行 SpecRunner.html。结果将出现以下屏幕截图。绿屏表示成功,红色表示测试用例失败。

结果

步骤 7 - 了解失败案例

到目前为止,我们已经看到了hello world 应用程序的成功测试用例。现在让我们看看如果出现问题并且测试失败怎么办。为了实现失败案例,我们需要编写失败测试案例。为此,我们将使用以下代码修改helloworld.js文件。

var helloworld = function () { 
   return ''; 
};  

// we are not returning any string whereas in the spec file 
//we are expecting a // string as “Hello World” 

上面的代码肯定会失败,因为我们的规范文件没有获得预期的字符串作为 helloworld ()的输出。以下specRunner.html文件的屏幕截图显示其红色指示器存在错误。

错误