javascript - 如何测试数组是否包含数组? ( Jest )

标签 javascript jestjs npm-scripts react-scripts

给定以下函数:

chunk = (arr, n) => {
    return arr.reduce(function(p, cur, i) {
        (p[i/n|0] = p[i/n|0] || []).push(cur);
        return p;
    }, []);
}

我想测试输出数组是否包含数组:

test("Splits a given array in N arrays", () => {
    let _input = Array.from({length: 999}, () => Math.floor(Math.random() * 999));;
    let int = mockService.getRandomArbitrary();
    expect(generalService.chunk(_input, int)).toContain(???????);
})

考虑matchers ,如何测试一个数组是否包含数组?

最佳答案

可能是这样的?

我们使用Array.isArray()(此处为docs)来测试每个元素

let output = generalService.chunk(_input, int));
let containArrays = true;
if (output.length) {
    output.forEach(element => {
        // containArrays is false if one of the element is *not* an array
        if (Array.isArray(element) === false) containArrays = false;
    });
}
// if output is an empty array it doesn't contain arrays
else containArrays = false;

expect(containArrays).toBeTruthy();

关于javascript - 如何测试数组是否包含数组? ( Jest ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187639/

相关文章:

reactjs - 方法 “simulate” 旨在在 1 个节点上运行。 0 找到了。 - Jest/ enzyme

jestjs - Jest : How to merge coverage reports from different jest test runs

reactjs - 在 windows 上配置 package.json

mysql - 链接应用程序与数据库

javascript - If 语句应给出 int 并在使用 0 时发出警报

javascript - 使用组合 JavaScript 文件 + Chutzpah/Blanket.js 获取准确的代码覆盖率统计数据

typescript - 用 ES6 和 Typescript 开 Jest

node.js - NPM run * 什么都不做

javascript - 嵌套 react 路由器: did not match any routes

javascript - 导入js-sha256