Как проверить угловую сервисную функцию, которая возвращает JSON? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть служба, написанная на угловом языке, которая принимает JSON в качестве ввода и возвращает JSON в качестве вывода после выполнения некоторых операций.

Я написал положительный тестовый сценарий для проверки этого сервиса. Но все время терпит неудачу.

Причина, по которой я подозреваю эту ошибку:

Ожидаемый результат:

[ Object({ key: 'Port', values: [ Object({ key: '01/01/17', values: [ Object({ date: '01/01/17', Type: 'Port', Result Code: '2', volume: '20', source: 'PCN', phone_Type: null }), Object({ date: '01/01/17', ....

Фактический объем производства:

[{"key":"Port","values":[{"key":"01/01/17","values":[{"date":"01/01/17","Type":"Port","Result Code":"2","volume":"20","source":"PCN","phone_Type":null},{"date":"01/01/17","Type":"Port","Result Code":"3","volume":"60","source":"PCN","phone_Type":null}....

Это из-за наличия Объекта ключевое слово в ожидаемом результате.

Как я могу решить это? Я использую карму и жасмин для тестовых случаев, и сервис написан на angular4.

1 Ответ

0 голосов
/ 11 мая 2018

Похоже, вы пытаетесь сравнить объект в кодировке JSON (т.е. строку) с объектом JavaScript. Ваш тест, вероятно, выглядит примерно так:

let jsonString = invokeMyService();
let expectedObject = { ... };
expect(jsonString).toEqual(expectedObject);

Вы должны убедиться, что ваш jsonString проанализирован, прежде чем сравнивать его с объектом. Вам нужно позвонить JSON.parse() так:

let jsonString = invokeMyService();
let expectedObject = { ... };
expect(JSON.parse(jsonString)).toEqual(expectedObject);
...