JasmineJS教程

JasmineJS 异常检查

除了不同的计算匹配器,Jasmine 还提供了一些有用的匹配器来检查程序的异常。让我们使用以下代码集修改我们的 JavaScript。
var throwMeAnError = function() {   
   throw new Error(); 
};  
describe("Different Methods of Expect Block", function() {  
   var exp = 25; 
   it ("Hey this will throw an Error ", function() { 
      expect(throwMeAnError).toThrow(); 
   }); 
});
在上面的示例中,我们创建了一个方法,该方法故意从该方法抛出异常,并在期望块中我们希望捕获错误。如果一切顺利,这段代码将产生以下输出。
异常块
现在,为了让这个测试用例失败,我们需要省略函数 throwMeAnError 中的 throw 语句。以下是将产生红色屏幕截图作为输出的代码,因为该代码不满足我们的要求。
var throwMeAnError = function() {   
   //throw new Error(); 
};   
describe("Different Methods of Expect Block",function() {  
   var exp = 25; 
   
   it("Hey this will throw an Error ", function() {  
      expect(throwMeAnError).toThrow();    
   }); 
});
正如所见,我们已经注释了我们的方法抛出异常的那一行。以下是上述代码在 SpecRunner.html 成功执行时的输出。
异常错误

Jasmine.Any()

Any 是当我们不确定输出时使用的特殊匹配器。在下面的例子中,我们将学习它是如何工作的。让我们用以下代码修改 customerMatcher.js
var addAny = function() {
   var sum = this.currentVal; 
	
   for (var i = 0; i < arguments.length; i++) { 
      sum += arguments[i]; 
   } 
	
   this.currentVal = sum;  
   return this.currentVal; 
} 
describe("Different Methods of Expect Block",function () { 
   
   it("Example of any()", function() { 
      expect(addAny(9,9)).toEqual(jasmine.any(Number)); 
   });
});
这里我们声明了一个函数,它将为我们提供作为参数提供的数字的总和。在expect 块中,我们期望结果可以是任何东西,但它应该是一个数字。
因为 sum yield 18 之后的 9 和 9 都是一个数字,所以这个测试会通过,它会生成下面的绿色屏幕截图作为输出。
任何方法
现在让我们根据以下代码更改代码,其中我们期望字符串类型变量作为函数 AddAny() 的输出。
var addAny = function() { 
   var sum = this.currentVal; 
	
   for(var i = 0; i < arguments.length; i++) { 
      sum += arguments[i]; 
   } 
	
   this.currentVal = sum; 
   return this.currentVal; 
}  
describe("Different Methodsof Expect Block",function () { 
   it("Example of any()", function () { 
      expect(addAny(9,9)).toEqual(jasmine.any(String));    
   });
});
以下是上面代码的输出。
任何错误
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4