JasmineJS - Equality Check

Jasmine提供了许多方法来帮助我们检查任何JavaScript函数和文件的相等性.以下是检查相等条件的一些示例.

ToEqual()

ToEqual()是最简单的匹配器内置的Jasmine库.它只是匹配作为此方法的参数给出的操作的结果是否与其结果匹配.

以下示例将帮助您了解此匹配器的工作原理.我们有两个要测试的文件,名为"expectexam.js",另一个我们需要测试的文件是"expectSpec.js".

Expectexam.js

window.expectexam = {    
   currentVal: 0,   
};

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 
   
   it("The Example of toEqual() method",function () {   
      //this will check whether the value of the variable  
      // currentVal is equal to 0 or not.  
      expect(expectexam.currentVal).toEqual(0);  
   });
});

成功执行后,这些代码将产生以下输出.请记住,您需要按照前面示例中的说明将这些文件添加到 specRunner.html 文件的标题部分.

toEquals方法

not.toEqual()

not.toEqual()完全有效与toEqual()相反.当我们需要检查该值是否与任何函数的输出不匹配时,使用 not.toEqual().

我们将上面的示例修改为显示这是如何工作的.

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 

   it("The Example of toEqual() method",function () {
      expect(expectexam.currentVal).toEqual(0);  
   });   
   
   it("The Example of not.toEqual() method",function () {  
      //negation  testing expect(expectexam.currentVal).not.toEqual(5); 
   }); 
});

Expectexam.js

window.expectexam = { 
   currentVal: 0,  
};

在第二个expect块中,我们检查 currentVal 的值是否等于5,因为currentVal的值是零,因此我们的测试通过并为我们提供绿色输出.

notEquals Method

ToBe()

toBe() matcher以与toEqual()类似的方式工作,但它们在技术上彼此不同. toBe()匹配器与对象的类型匹配,而 toEqual()与结果的等效性匹配.

以下示例将帮助您了解工作情况toBe()匹配器的原理.这个匹配器完全等同于JavaScript的"==="运算符,而toEqual()类似于JavaScript的"=="运算符.

ExpectSpec.js

describe("Different Methods of Expect Block",function () {  

   it("The Example of toBe() method",function () { 
      expect(expectexam.name).toBe(expectexam.name1);     
   });
});

Expectexam.js

window.expectexam = {
   currentVal: 0, 
   name:"it1352", 
   name1:it1352  
};

我们将略微修改我们的 expectexam JavaScript文件.我们添加了两个新变量, name name1 .请找出这两个添加变量之间的区别 - 一个是字符串类型,另一个不是字符串类型.

以下屏幕截图是我们的测试结果,其中红叉表示这两个值是不平等的,而预计是平等的.因此我们的测试失败了.

expectExam Error

让我们把两者都转变量,名称 name1 作为字符串类型变量,并再次运行相同的 SpecRunner.html .现在检查输出.它将证明toBe()不仅与变量的等价性匹配,而且还与变量的数据类型或对象类型匹配.

not.toBe()

如前所述,并非只是对toBe()方法的否定.当预期结果与函数或JavaScript文件的实际输出匹配时,它会失败.

以下是一个简单的示例,可帮助您了解not.toBe()匹配器的工作原理.

describe("Different Methods of Expect Block",function () { 
   it("The Example of not.toBe() method",function () { 
      expect(true).not.toBe(false);    
   });
});

这里Jasmine将尝试匹配true和false.由于true不能与false相同,因此该测试用例将有效并通过.

toBe Method