JasmineJS - 空值檢查



Jasmine 提供了多種方法來檢查實際輸出是否為空、已定義或未定義。在本章中,我們將學習如何實現不同的 Jasmine 方法來檢查上述場景。

ToBedefined()

此匹配器用於檢查程式碼中的任何變數是否已預定義。讓我們根據此示例修改我們的customerMatcherSpec.js檔案。

currentVal = 0;  

describe("Different Methods  of Expect Block",function () { 
   it("Example of  toBeDefined", function () {
      expect(currentVal).toBeDefined();
   });
});

在上面的程式碼中,toBeDefined() 將檢查變數currentVal是否在系統中定義。由於currentVal最初定義為0,因此此測試將透過並生成綠色截圖作為輸出。

toBeDefined Method

同樣在上面的示例中,讓我們刪除第一行,我們實際上定義了“currentVal”並再次執行。然後我們將得到一個紅色螢幕,這意味著測試實際上失敗了,因為我們期望一個未定義的值被定義。以下螢幕截圖將是輸出檔案。

toBeDefined Error

ToBeUndefined()

此匹配器有助於檢查任何變數是否以前未定義,基本上它與之前的匹配器toBeDefined的工作方式相反。在以下示例中,我們將學習如何使用此匹配器。讓我們使用以下條目修改我們的 Spec 檔案,即customerMatcher.js檔案。

describe("Different Methods of Expect Block",function () { 
   it("Example of toBeUndefine()", function () { 
      var undefineValue; 
      expect(undefineValue).toBeUndefined(); 
   });
}); 

在上一節中,我們將驗證我們的變數“undefineValue”是否實際上未定義。將此檔案新增到SpecRunner後,我們將收到一個綠色螢幕截圖作為輸出,這告訴我們此值實際上以前未定義。

toBeUndefine Method

同樣,讓我們使用一些預定義的值定義變數,並檢視它是否會引發錯誤。新的customerMatcher.js如下所示。

describe("Different Methods of Expect Block",function () {
   it("Example oftoBeUndefine()", function () { 
      var undefineValue = 0;
      expect(undefineValue).toBeUndefined();
   });
});

上面的程式碼段將引發錯誤並生成一個紅色螢幕截圖,因為我們已經將“undefineValue”的值定義為“0”,並期望它未定義。執行SpecRunner.html檔案時將生成以下螢幕截圖。

toBeUndefine Error

toBeNull()

顧名思義,此匹配器有助於檢查空值。讓我們再次使用以下程式碼段修改customerMatcherSpec.js檔案。

describe("Different Methods of Expect Block",function () { 
   var value = null; 
	
   it("Example of toBeNull()", function () { 
      expect(value).toBeNull();
   });
}); 

在上面的程式碼中,我們提到了一個變數”value”,並且我們已明確地將此值指定為空。在expect塊中,toBeNull()匹配器將檢查此值並相應地給出結果。以下是上述程式碼在透過SpecRunner.html檔案執行時的輸出。

toBeNull Method

現在讓我們透過提供除空值之外的一些已定義值來進行測試。請相應地修改customerMatcher.js檔案。

describe("Different Methods of Expect Block",function () {
   var value = "TutorialsPoint"; 
	
   it("Example of  toBeNull()", function () { 
      expect(value).toBeNull();
   });
}); 

在上面的示例中,我們已將變數值修改為“TutorialsPoint”,它不是空值。因此,此測試將失敗併產生紅色螢幕截圖作為輸出。

toBeNull Error
廣告