Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Jest和React测试函数_Javascript_Node.js_Reactjs_Jestjs - Fatal编程技术网

Javascript 如何使用Jest和React测试函数

Javascript 如何使用Jest和React测试函数,javascript,node.js,reactjs,jestjs,Javascript,Node.js,Reactjs,Jestjs,我不太会开玩笑和做出反应,我需要为这个函数编写一个单元测试,我真的试图理解文档,但我很难理解如何准确地模拟这个函数 function desc(a, b, orderBy) { if (b[orderBy] < a[orderBy]) { return -1; } if (b[orderBy] > a[orderBy]) { return 1; } return 0; } 函数描述(a、b、orderBy){ if(b[orderBy]a[orderBy]){ 返回

我不太会开玩笑和做出反应,我需要为这个函数编写一个单元测试,我真的试图理解文档,但我很难理解如何准确地模拟这个函数

function desc(a, b, orderBy) {
if (b[orderBy] < a[orderBy]) {
    return -1;
}
if (b[orderBy] > a[orderBy]) {
    return 1;
}
return 0;
}
函数描述(a、b、orderBy){
if(b[orderBy]a[orderBy]){
返回1;
}
返回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]); });
 });
});
description('合同表排序',()=>{
它('按描述订购',()=>{
contract.desc.mockImplementation(异步()=>{return(a、b、orderBy)
=>(a[orderBy]>b[orderBy])-(a[orderBy]
如果需要对对象列表/数组进行排序,应执行以下操作:

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

//在js(sortFn.js)文件中:
const sortTable=orderBy=>{
返回函数(a,b){
如果(a[orderBy]>b[orderBy]){
返回-1;
}如果(a[orderBy]{
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}];
它('按描述订购',()=>{
const sortResult=originalArray.sort(sortTable('age'));
expect(sortResult)、toEqual(expectedArray);
});

});找到了一个解决方案,正如Dave所说,我需要用数据调用它,然后检查它是否匹配

 describe('Tests for the descendingOrderBy function', () => {
it('should reverse the full and part contracts', () => {
    const ordering = desc(fullObject, partContract, 'title');
    expect(ordering).toEqual(-1);
});

你为什么要嘲笑它?如果你嘲笑它,那么你不是在测试它。看起来你更想用数据来调用它,然后检查数据是否符合你的期望。它们是否应该在同一个文件夹中取决于你的项目组织(我个人不喜欢它们在同一个文件夹中,这是Java/Rails/Elixir时代的遗留问题)。@DaveNewton我同意你的观点,但这只是一个简单的例子。