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

Specs for Node.js Calculator using Jasmine and JavaScript 5

Запись от 8Observer8 размещена 24.02.2019 в 20:37
Показов 1408 Комментарии 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
Просмотров: 1025

Размер: 1.8 Кб
Метки javascript, node.js
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru