JasmineJS 顺序检查
Jasmine 还提供了不同的方法来提供 JS 输出的顺序性。下面的例子展示了如何使用 Jasmine 实现顺序检查。
ToContain()
toContain() 匹配器为我们提供了检查任何元素是否属于同一数组或某些其他顺序对象的一部分的便利。下面的例子将帮助我们理解 Jasmine toContain() 方法的工作方法。让我们在之前创建的
customerMatcherSpec.js 文件中添加以下代码。
describe("Different Methods of Expect Block",function () {
it("The Example of toContain() method",function () {
expect([1,2, 3, 4]).toContain(3);
});
});
在上面的示例中,我们正在检查该数组中是否存在 3、我们得到一个绿色输出,因为数组中存在 3、
在上面的示例中,让我们将 3 的值更改为 15 并再次运行规范。我们将得到以下红色屏幕,因为 15 不属于我们作为该函数的参数传递的数组。
ToBeCloseTo()
toBeCloseTo() 匹配器匹配实际值是否接近预期值。在下面的例子中,我们将修改我们的
customerMatcherSpec.js 文件,看看它是如何工作的。
describe("Different Methods of Expect Block", function () {
it("Example of toBeCloseTo()", function () {
expect(12.34).toBeCloseTo(12.3, 1);
});
});
在上面的 Describe 块中,我们正在检查实际结果"12.3"是否更接近预期输出"12.34"。由于这满足我们的要求,我们将有以下绿色屏幕截图作为我们的输出。该方法的第二个参数是要比较的小数位数。
在上面的代码中,我们将期望值修改为 15 并运行
SpecRunner.html。
describe("Different Methods of Expect Block",function () {
it("Example of toBeCloseTo()", function () {
expect(12.34).toBeCloseTo(15, 1);
});
});
在这种情况下,15 远不及 15,因此它会生成错误并显示红色屏幕截图作为错误。
ToMatch()
ToMatch() 匹配器适用于字符串类型变量。确定预期输出中是否存在特定字符串很有帮助。以下是我们的
customerMatcherSpec.js 的样子。
describe("Different Methods of Expect Block",function () {
it("Example of toMatch()", function () {
expect("Jasmine tutorial in tutorials.com").toMatch(/com/);
});
});
这段代码将测试
"com"是否存在于给定的预期字符串中。由于字符串中存在
com,它会生成一个绿色截图并通过测试条件。
现在让我们将输出更改为其他字符串,该字符串不存在于预期值中。然后我们的
customerMatcherSpec.js 将如下所示。
describe("Different Methods of Expect Block",function () {
it("Example of toMatch()", function () {
expect("Jasmine tutorial in tutorials.com").toMatch(/XYZ/);
});
});
上面的代码会在期望值中找到"XYZ"字符串,因为它不存在于期望字符串中,所以会抛出错误,输出屏幕会相应地显示为红色。