gpt4 book ai didi

javascript - 如何使用 Jest 和 React 测试函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:44 25 4
gpt4 key购买 nike

我是 Jest 和 react 的新手,我需要为这个函数编写一个单元测试,我真的试图理解文档,但我很难理解如何准确地模拟这个函数?

function desc(a, b, orderBy) {
if (b[orderBy] < a[orderBy]) {
return -1;
}
if (b[orderBy] > a[orderBy]) {
return 1;
}
return 0;
}

下面也是我的 Jest 测试,它通过了,但没有断言或行覆盖

describe('Contract Table Ordering', () => {
it('orders by desc', () => {
contract.desc.mockImplementation(async () => { return (a, b, orderBy)
=> (a[orderBy] > b[orderBy]) - (a[orderBy] < b[orderBy]); });
});
});

最佳答案

如果你需要对对象列表/数组进行排序,你应该这样做:

请注意,您的 js 文件 (sortFn.js) 和单元测试文件 (sortFn.js) 应位于同一文件夹中。

//in your js (sortFn.js) file: 
const sortTable = orderBy => {
return function(a, b) {
if (a[orderBy] > b[orderBy]) {
return -1;
} else if (a[orderBy] < b[orderBy]) {
return 1;
}
return 0;
};
}
export default sortTable;


//In your unit-test file (sortFn.test.js):
import sortTable from './sortFn';

describe('Contract Table Ordering', () => {
const originalArray = [{name: 'ab', age: 19}, {name: 'xz', age: 26}, {name: 'ab', age: 14}, {name: 'cw', age: 22}];
const expectedArray = [{name: 'xz', age: 26}, {name: 'cw', age: 22}, {name: 'ab', age: 19},{name: 'ab', age: 14}];

it('orders by desc', () => {
const sortResult = originalArray.sort(sortTable('age'));
expect(sortResult).toEqual(expectedArray);
});
});

关于javascript - 如何使用 Jest 和 React 测试函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com