Jasmine提供了一种不同的方法来检查实际输出是否为Null,已定义或未定义.在本章中,我们将学习如何实现不同的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,因此该测试将通过并生成绿色屏幕截图作为输出.
再次在上面的例子中,让我们删除第一行,我们实际定义"currentVal"并再次运行.然后我们将得到一个红色屏幕,这意味着测试实际上失败了,因为我们期望定义一个未定义的值.以下屏幕截图将是输出文件.
ToBeUndefined ()
这个匹配器有助于检查以前是否未定义任何变量,基本上它与前一个匹配的toBeDefined相反.在以下示例中,我们将学习如何使用此匹配器.让我们使用以下条目修改我们的Spec文件,即 customerMatcher.js 文件.
describe("Different Methods of Expect Block",function () { it("Example of toBeUndefine()", function () { var undefineValue; expect(undefineValue).toBeUndefined(); });});
在上一节中,我们将验证我们的变量"undefineValue"是否实际上是未定义的.将此文件添加到SpecRunner后,我们将收到一个绿色屏幕截图作为输出,告诉我们此值实际上未在之前定义.
再次让我们用一些预定义的值定义变量,看它是否会抛出错误.新的 customerMatcher.js 如下所示.
describe("Different Methods of Expect Block",function () { it("Example oftoBeUndefine()", function () { var undefineValue = 0; expect(undefineValue).toBeUndefined(); });});
上面的代码会抛出错误并生成红色屏幕截图,因为我们已经定义了"undefineValue"值到"0"并期望它没有被定义.以下屏幕截图将在运行 SpecRunner.html 文件时生成.
toBeNull()
由于名称表示此匹配器有助于检查空值.让我们再用以下代码修改我们的 customerMatcherSpec.js 文件.
describe("Different Methods of Expect Block",function () { var value = null; it("Example of toBeNull()", function () { expect(value).toBeNull(); });});
在上面的代码中,我们提到了一个变量"value",我们已经明确地将此值提及为null.在expect块中,toBeNull()匹配器将检查此值并相应地给出结果.以下是上述代码在SpecRunner.html文件的帮助下运行时的输出.
现在让我们通过提供除null之外的一些定义值进行测试.请相应地修改 customerMatcher.js 文件.
describe("Different Methods of Expect Block",function () { var value = "TutorialsPoint"; it("Example of toBeNull()", function () { expect(value).toBeNull(); });});
在上面的例子中,我们使用"TutorialsPoint"修改了变量值,该值不是空值.因此,此测试将失败并生成红色屏幕截图作为输出.