Жасмин - Как написать тест для массива с именованными свойствами и объектом - PullRequest
0 голосов
/ 05 декабря 2018

Я столкнулся со странной ситуацией сегодня, благодаря Javascript.У меня есть Объект, который выглядит примерно так.

$scope.main = [{main : 1},service:true];

Теперь, когда я пытаюсь ожидать это внутри теста Жасмин для приравнивания объектов:

expect($scope.main).toEqual([{main : 1},service:true]);

Это дает мне ошибку:

Unexpected Token.

Странно, это допустимый объект для Javascript.Но Жасмин не может принять это.

Есть ли способ проверить это?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Прикрепление скриншота структуры.

structure image

1 Ответ

0 голосов
/ 05 декабря 2018

Обновление

Теперь я вижу на основе вашего скриншота, что вы создаете объект main в несколько этапов.Я сократил его до следующего:

var main = [{main: 1}];
main.service = true;

В dev-tools вы видите main как нечто, похожее на это: [{main: 1}, service: true].

Однако не вводите в заблуждение.Dev-tools показывает вам структуру, которая должна быть информативной.Вы не можете создать эту структуру в одной строке javascript, потому что она недопустима.Вы должны создать его в несколько этапов, как у вас.

Вот почему, когда вы пытаетесь создать его в своем тесте в одну строку, вы получаете ошибку Unexpected Token..В вашем тесте вы должны создать ожидаемый объект аналогично тому, как вы создали свой объект main.Например:

var expected = [{main: 1}];
expected.service = true;

expect(main).toEqual(expected);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...