Форум программистов, компьютерный форум, киберфорум
8Observer8
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Specs for Node.js Calculator using Jasmine and JavaScript 5

Запись от 8Observer8 размещена 24.02.2019 в 20:37
Показов 1391 Комментарии 0
Метки javascript, node.js

Blog content

Let's write an executable documentation for server side calculator.

Specifications:
  • "Add(a, b)" method must to sum positive numbers. Specification name: Add_SumPositiveNumbers_ReturnsSum
  • "Sub(a, b)" method must to subtract positive numbers. Specification name: Sub_SubtractPositiveNumbers_ReturnsSub

Instruction:
  • Create the "calculator-nodejs-jasmine-es5" folder
  • Run these commands to install Jasmine locally:
    npm init -y
    npm install --save-dev jasmine
  • Create the "jasmine.json" file in the "calculator-nodejs-jasmine-es5" folder
  • Copy the content for the "jasmine.json" file from the link: https://jasmine.github.io/setup/nodejs.html and make some changes, see the content below:

    jasmine.json

    JSON
    1
    2
    3
    4
    5
    6
    7
    8
    
    {
        "spec_dir": "src_specs",
        "spec_files": [
            "**/*_tests.js",
            "!**/*nospec.js"
        ],
        "random": false
    }
  • Open the "package.json" file and add the command to run tests:
    JSON
    1
    2
    3
    
        "scripts": {
            "test": "node node_modules/jasmine/bin/jasmine.js  --config=jasmine.json"
        },
  • Try to run tests. Enter the command:
    npm run test
    You will see a message that "No specs found"
  • Create the "src_shared" folder. Create the "calculator.js" file the the "src_shared" folder
  • Create the "src_specs" folder. Create the "calculator_tests.js" file the the "src_specs" folder
  • Add our specs described above to the "calculator_tests.js" file:

    calculator_tests.js
    JavaScript
    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
    
    var Calculator = require("../src_shared/calculator");
     
    describe("Calculator", function()
    {
        it("Add_SumPositiveNumbers_ReturnsSum", function()
        {
            // Arrange
            var calculator = new Calculator();
            var a = 5;
            var b = 2;
            var expectedSum = 7;
     
            // Act
            var actualSum = calculator.Add(a, b);
     
            // Assert
            expect(actualSum).toEqual(expectedSum);
        });
     
        it("Sub_SubtractPositiveNumbers_ReturnsSub", function()
        {
            // Arrange
            var calculator = new Calculator();
            var a = 5;
            var b = 2;
            var expectedSub = 3;
     
            // Act
            var actualSub = calculator.Sub(a, b);
     
            // Assert
            expect(actualSub).toEqual(expectedSub);
        });
    });
  • If you will run tests using the command "npm run test" then you will see the message:
    ReferenceError: Calculator is not defined
  • Let's implement these methods and run tests using the command "npm run test". You will see that the tests are passed

    calculator.js

    JavaScript
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    var Calculator = function()
    {
     
    };
     
    Calculator.prototype.Add = function(a, b)
    {
        return a + b;
    };
     
    Calculator.prototype.Sub = function(a, b)
    {
        return a - b;
    };
     
    module.exports = Calculator;

Название: calculator-nodejs-jasmine-es5.png
Просмотров: 1021

Размер: 1.8 Кб
Метки javascript, node.js
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru