Jest - Есть ли способ утверждать полную структуру данных ответов JSON с несколькими исключениями для обработки динамических значений внутри JSON? - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь проверить ответ JSON от API и в настоящее время использую для этого функцию ".toEqual". Мне нравится использовать оператор toEqual, поскольку он обеспечивает точное совпадение. Это работало нормально до тех пор, пока мне не пришлось протестировать ответ с динамическими значениями и, следовательно, задаться вопросом, есть ли какие-либо готовые опции для обобщения проверки дионами или я должен реализовать расширение для ".toEqual" локально (или любые другие лучшие способы сделать это возможным снаименьшее усилие также)

Теперь поговорим с примерами:

# Мыслительный процесс о том, как я хочу определить и проверить ответ

definition:{
    status: 200,
    exec: pass,
    a: "apple",
    data: {
            b: string
            },
    id: integer,
    createdOn: DateTime
};

actual: {
    status: 200,
    exec: pass,
    a: "apple",
    data: {b: "ball"},
    id: 50,
    createdOn: "25-10-2019 17:49 EST"
}
//The above actual response should validate to true for the definition

Как я могу добиться этого вШутка? Я использую nodejs + машинопись. Так что, если не в шутку, как еще?

1 Ответ

0 голосов
/ 28 октября 2019

Достигнуто это с помощью функции моментальных снимков, доступной в jest,

test(`Sample to show the feature of snapshots`, () => {
    const definition = {
        status: 200,
        exec: pass,
        a: "apple",
        data: {
                b: expect.any(String)
            },
        id: expect.any(Number),
        createdOn: expect.any(Date)
    };

    const actual = {
        status: 200,
        exec: pass,
        a: "apple",
        data: {
                b: "ball"
            },
        id: 50,
        createdOn: "25-10-2019 17:49 EST"
    }
    return expect(actual).toMatchSnapshot(definition);
});

//The Date part alone will have to be formatted and tested yet, but guess you get the idea..
...