Как проверить функцию с помощью Jest и React - PullRequest
0 голосов
/ 28 февраля 2019

Я новичок в шутке и реакции, и мне нужно написать модульный тест для этой функции, я действительно пытался понять документацию, но я пытаюсь понять, как я могу точно высмеивать эту функцию?

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

Также ниже приведен мой шутный тест, который проходит, но не имеет утверждений или покрытия линии

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

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Нашел решение, так как Дейв сказал, что мне нужно вызвать его с данными и затем проверить, соответствует ли оно,

 describe('Tests for the descendingOrderBy function', () => {
it('should reverse the full and part contracts', () => {
    const ordering = desc(fullObject, partContract, 'title');
    expect(ordering).toEqual(-1);
});
0 голосов
/ 28 февраля 2019

Если вам нужно отсортировать список / массив объектов, вы должны сделать что-то вроде этого:

Обратите внимание, что ваш файл 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);
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...