С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
11 / 11 / 8
Регистрация: 06.01.2018
Сообщений: 134
1

Тестирование с использованием Chai и Mocha. Ошибка в проверке assert.equal

31.05.2018, 16:40. Показов 1282. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Пишу скрипт для проверки правильности результатов работы функции, возвращающей n-й член последовательности Фибоначчи. Сижу, ломаю голову, почему результаты тестирования для нечётных чисел выводятAssertionError: expected 13 to equal 6765, а для чётных AssertionError: expected 13 to equal 10946. Через console.log проверял, что вычисление элементов последовательности работает правильно, поэтому догадок, откуда берутся числа 6765 и 10946 нет вообще.
Буду благодарен за помощь.
Код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!doctype html>
 
<html>
    
    <head>
        
        <title>Binet's Formula</title>
        
        <!-- подключаем стили Mocha, для отображения результатов -->
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.1.0/mocha.css">
        <!-- подключаем библиотеку Mocha -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.1.0/mocha.js"></script>
        <!-- настраиваем Mocha: предстоит BDD-тестирование -->
        <script>
            mocha.setup('bdd');
        </script>
        
        <!-- подключаем chai -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/chai/2.0.0/chai.js"></script>
        <!-- в chai есть много всего, выносим assert в глобальную область -->
        <script>
            var assert = chai.assert;
        </script>
        
    </head>
    
    <body>
    
        <!-- скрипт с функцией -->
        <script src='fibBinet.js'></script>
        
        <!-- в этом скрипте находятся спеки -->
        <script src='test.js'></script>
        
        <!-- в элементе с id="mocha" будут результаты тестов -->
        <div id="mocha"></div>
        
        <!-- запускаем тесты -->
        <script>
            mocha.run();
        </script>
        
    </body>
    
</html>
Javascript
1
2
3
function fibBinet(n) {
    return 13;
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"use strict"
 
describe("fibBinet", function() {
 
    var x = 0;
    var y = 1;
    var j = 1;
    var k = 2;
    for (var i=1; i<=10; i++) {
        it(j + " число Фибоначчи", function() {
            assert.equal(fibBinet(j), x);
        });
        x += y;
        j += 2;
        it(k + " число Фибоначчи", function() {
            assert.equal(fibBinet(k), y);
        });
        y += x;
        k += 2;
    }
});
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2018, 16:40
Ответы с готовыми решениями:

Тестирование Chai & Mocha аргументов функции
Добрый день, столкнулся с проблемой в тестировании аргументов функции. Необходимо сравнить два...

Mocha и Chai. Проверка значений в объекте
Как проверить в объекте person существование ключей firstname и secondname и соответствующих...

Ошибка на проверке ASSERT: m_hWnd равен NULL
Такая проблемка: есть MDI приложение, дочерняя форма (скажем CView1) с разными контролами, по...

Модульное тестирование, Assert
Всем привет, есть вопрос! В модульном тесте у меня идет подряд множество Assert-ов: ...

1
the hardway first
Эксперт JS
2472 / 1844 / 909
Регистрация: 05.06.2015
Сообщений: 3,609
01.06.2018, 08:25 2
Цитата Сообщение от EvilDog17 Посмотреть сообщение
догадок, откуда берутся числа 6765 и 10946 нет вообще.
Потому что не запускайте спеки в цикле, если не понимаете что делаете:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
describe("fibBinet", function() {
 
    var x = 0;
    var y = 1;
    var j = 1;
    var k = 2;
    for (var i=1; i<=10; i++) {
/*         it(j + " число Фибоначчи", function() {
            assert.equal(fibBinet(j), x);
        }); */
        x += y;
        j += 2;
/*         it(k + " число Фибоначчи", function() {
            assert.equal(fibBinet(k), y);
        }); */
        y += x;
        k += 2;
    }
    console.log(x, y); //=> 6765 10946
});
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
describe("fibBinet", function() {
 
  var x = 0;
  var y = 1;
  var j = 1;
  var k = 2;
  for (var i = 1; i <= 10; i++) {
    !function(x) {
      it(j + " число Фибоначчи", function() {
        assert.equal(fibBinet(j), x);
      });
    }(x);
    x += y;
    j += 2;
    !function(y) {
      it(k + " число Фибоначчи", function() {
        assert.equal(fibBinet(k), y);
      });
    }(y)
    y += x;
    k += 2;
  }
});
0
01.06.2018, 08:25
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2018, 08:25
Помогаю со студенческими работами здесь

Ошибка DRIVER IRQL NOT LESS OR EQUAL
Здравствуйте, появляется периодически синий экран с такой вот ошибкой DRIVER IRQL NOT LESS OR EQUAL...

Ошибка driver irql not less or equal etd.sys
Здравствуйте,эта ошибка меня тревожит уже больше года,выходит в основном в играх, раньше было раз в...

Возникает ошибка времени выполнения при некорректном assert
Не могу понять, в чем проблема. Вроде бы код настолько прост, что ошибке негде возникнуть. А она...

Ошибка с базами данных Undeclared predicate, misspelling or not supported on chosen platform assert
Добрый день database-languages language(string) clauses assert(language(&quot;Italian&quot;))....

Комплексные Системы Тестирование с использованием БД и SQL
Я в 2009г. написал на скорую руку диплом по этой теме. Задумки в нем реализованы не плохие, но вот...

Тестирование элементов WebForms с использованием TDD
Тема: Тестирование элементов WebForms с использованием TDD. Цель: приобрести навыки в тестировании...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Обновление сайта www.historian.b­y
Reglage 13.01.2025
За неделю добавил два урока - по ассемблеру и Линуксу, а также дополнил один урок по ассемблеру. Мелкими шагами двигаюсь дальше к неизменной цели. По ИТ: 1) добавил урок "Структура программы на. . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
Как создавать приложения для iOS/iPhone
InfoMaster 12.01.2025
Введение в разработку iOS-приложений Разработка приложений для iOS открывает огромные возможности в мире мобильных технологий. С каждым годом количество пользователей iPhone и iPad растет,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru