Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для ds102061
2 / 2 / 4
Регистрация: 13.10.2010
Сообщений: 167

Ошибка при запуске автотеста .toBeNull()

15.08.2024, 15:44. Показов 588. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задана функция getMarketingPrice
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
export function getMarketingPrice(product) {
  const productObject = JSON.parse(product);
  const err = new TypeError();
 
  try {
      if (productObject.hasOwnProperty(productObject.prices) ) {
        if (productObject.prices.marketingPrice in productObject.prices)
        return productObject.prices.marketingPrice;
      }
  } catch (err) {
    throw err ;
  }
}
и автотест вызывает функцию
JavaScript
1
2
3
4
5
6
7
test('getMarketingPrice', () => {
  expect(() => {
    getMarketingPrice('{ "name": "Product" }');
  }).not.toThrow();
  expect(getMarketingPrice('{ "name": "Product" }')).toBeNull();
  expect(getMarketingPrice('{ "name": "Product", "prices": { "marketingPrice": 1200 } }')).toBe(1200);
});
но выходит ошибка
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 getMarketingPrice
 
    expect(received).toBeNull()
 
    Received: undefined
 
      15 |     getMarketingPrice('{ "name": "Product" }');
      16 |   }).not.toThrow();
    > 17 |   expect(getMarketingPrice('{ "name": "Product" }')).toBeNull();
         |                                                      ^
      18 |   expect(getMarketingPrice('{ "name": "Product", "prices": { "marketingPrice": 1200 } }')).toBe(1200);
      19 | });
      20 |
 
      at Object.<anonymous> (01/test.js:17:54)
какое условие пропустила в функции
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2024, 15:44
Ответы с готовыми решениями:

не открывает домен при запуске автотеста в headless режиме
написал класс для тестирования авторизации через одноклассники на java (17) + testng (7.6.0) + selenium (4.3.0): import...

Ошибка при создании автотеста
Добрый день! Только обучаюсь Котлину, поэтому не хватает опыта. Мой вопрос такой: В моем коде есть функция: fun add(newTitle:...

XPath при поиске не могу найти нужный элемент при создании автотеста на C#
Все доброго времени. Учусь писать авто тесты на с#. Пытаюсь автотест заставить открыть сайт и нажать на кнопку...

1
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
16.08.2024, 08:11
Лучший ответ Сообщение было отмечено ds102061 как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export function getMarketingPrice(product) {
  // могут быть ошибки преобразования 
  const productObject = JSON.parse(product);
  // нигде дальше не используется и нет сообщения
  const err = new TypeError();
 
  try {
      // hasOwnProperty(productObject.prices) ожидает передачу строкового обозначения или Symbol
      if (productObject.hasOwnProperty(productObject.prices) ) {
        // in ожидает строки или символ для проверки "marketingPrice" in productObject.prices
        if (productObject.prices.marketingPrice in productObject.prices)
        return productObject.prices.marketingPrice;
      }
  } catch (err) {
    throw err ;
  }
  // возвращаем null который требуется в тесте
  return null
}
исправленный код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
export function getMarketingPrice(product) {
  if (typeof product != "string") throw new TypeError("product не строка");
  // try catch тут не нужен потому что в catch кидаем тоже самое исключение, но я оставил потому что он был исходном коде
  try {
    const productObject = JSON.parse(product);
    if (
      !productObject.prices ||
      !productObject.prices.hasOwnProperty("marketingPrice")
    )
      return null;
    return productObject.prices.marketingPrice;
  } catch (err) {
    throw err;
  }
}
читай документацию: in hasOwnProperty
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.08.2024, 08:11
Помогаю со студенческими работами здесь

ошибка 0xc0000020 при запуске установки и запуске некоторых приложений
Пару дней назад внезапно стали вылетать ошибки при запуске некоторых приложений. Пробовал обновить систему с 1909 до 2004 но что то ему...

При запуске Касперского Ошибка: avp.exe ошибка приложения
Добрый день. Сегодня при запуске Касперского 2012 Ошибка: avp.exe ошибка приложения(Если необходимо, то могу привести текст этого окошка)....

Ошибка при запуске 1С:Предприятия: Ошибка подключения HRESULT=80004005
Здравствуйте, помогите, пожалуйста. Посмотрел в инете и мало что понял из написанного там. Во первых, это ошибка 1С сервера или базы...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей программы windows выдает ошибку. Почему ?...

Ошибка при запуске клиента,ошибка сетевого доступа
когда начинаю загружать саму базу в 1с-ке, выдается ошибка: Ошибка при выполнении операции с информационной базой ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru