Jasmine JavaScript测试-toBe与toEqual
数组可以通过2种方式进行比较-
它们引用内存中的同一数组对象。
它们可能引用不同的对象,但是它们的内容都是相同的。
示例
对于情况1,茉莉提供了toBe方法。以此作为参考。例如,
describe("Array Equality", () => {
it("should check for array reference equility", () => {
let arr = [1, 2, 3];
let arr2 = arr
// Runs successfully
expect(arr).toBe(arr2);
// Fails as references are not equal
expect(arr).toBe([1, 2, 3]);
});
});输出结果
这将给出输出-
1) Array Equality should check for array equility Message: Expected [ 1, 2, 3 ] to be [ 1, 2, 3 ]. Tip: To check for deep equality, use .toEqual() instead of .toBe().
示例
对于情况2,我们可以使用toEqual方法并深度比较数组。例如,
describe("Array Equality", () => {
it("should check for array reference equility", () => {
let arr = [1, 2, 3];
let arr2 = arr;
// Runs successfully
expect(arr).toEqual(arr2);
// Runs successfully
expect(arr).toEqual([1, 2, 3]);
});
});输出结果
这将给出输出-
1 spec, 0 failures