sinon.match () не соответствует объекту с ответом Json.stringify - PullRequest
0 голосов
/ 18 июня 2019

Я тестирую простой экспресс-маршрут, который возвращает объект json и usin mocha с sinon, чтобы соответствовать ответу.

Это простой экспресс-ответ / логин

            const login = async (req, res) => {
                let response = {
                    success: true,
                    id: "id0090",
                }
                res.end(JSON.stringify(response));
            }

Этопростой тет с микой и синоном

it('res.end should be called with success true ', async () => {
    let req = {
        body: {}
    }
    let res = {
        end: sinon.spy(),
    }
    await login(req,res);
    let expected = {
        success: true,
        id: "id0090",
    }
    sinon.assert.calledWith(res.end, sinon.match(expected));

});

Я получаю эту ошибку, но, как вы видите, оба одинаковы.

            AssertError: expected end to be called with arguments 
            {"success":true,"id":"id0090"} match(success: true, id: id0090)

Интересно, что если я удаляю JSON.stringify из login Пройти тест, но это не идея.

            const login = async (req, res) => {
                let response = {
                    success: true,
                    id: "id0090",
                }
                res.end(response); // this make the test pass
            }

Спасибо за любую помощь

...