用断言库chai, 如何判断一个数组是一个二维数组, 即数组的每一项都为一个数组

如题, 我有一个函数,这个函数返回的数据必须是一个类似于:

[
    [1, 2, 3],
    [2, 3, 4]
]

这样的一个二维数组, 如何来写这个测试用例比较好?

阅读 3.4k
2 个回答

抛砖引玉

const expect = require("chai").expect;
const toAssert = [
    [1, 2, 3],
    [5, 6],5
]
expect(toAssert).to.be.a('array', 'toAssert不是个数组').satisfies(obj =>
    obj.map((val, idx) => {
        expect(val).to.be.a('array', `toAssert的第${idx}个值不是数组`)
    })
)

伪代码:

function isArray(v) {
  return (if v is array);
}

var a = ...;

assertTrue(isArray(a));

for (var i = 0; i < a.length; i++) {
  var subArray = a[i];
  assertTrue(isArray(subArray));
  for (var j = 0; j < subArray.length; j++) {
    var subSubArray = subArray[j];
    assertFalse(isArray(subSubArray));
  }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题