Однажды во время учебы по одному из предметов было задание создать модульный тест для двух методов calculate() и input().
Среди всех языков программирования мой выбор на Ruby со своей простотой и возможностями. Еще один плюс что не нужно устанавливать дополнительные фреймворки так и программы для модульного тестирования на ruby. Сам модуль тестирования встроен в ruby и подключается строкой
И так я написал класс и три метода которые я буду тестировать.
Среди всех языков программирования мой выбор на Ruby со своей простотой и возможностями. Еще один плюс что не нужно устанавливать дополнительные фреймворки так и программы для модульного тестирования на ruby. Сам модуль тестирования встроен в ruby и подключается строкой
require "test/unit"
И так я написал класс и три метода которые я буду тестировать.
class SimpleNumber def initialize(x, acc) end def self.input(x,acc) @x = x.to_i @acc = acc.to_i end def self.calculate() ex =0 return @x if @x == -1 for i in 1..@acc ex += (-1**i) * ((@x**i) / self.fact(i)) end return ex end def self.fact(n) if n.to_i<= 1 1 else n.to_i * fact( n.to_i - 1 ) end end endА вот это собственно и есть модуль где мы тестируем наши методы.
require_relative "simple_number" require "test/unit" class TestSimpleNumber < Test::Unit::TestCase def test_numbers SimpleNumber.input(10,6) assert_equal(-2863, SimpleNumber.calculate()) SimpleNumber.input(10.0,6) assert_equal(-2863, SimpleNumber.calculate()) SimpleNumber.input(100,100) assert_equal(-14154608721008799669375546308212763073288043, SimpleNumber.calculate()) end def test_factorial assert_equal(1, SimpleNumber.fact(-1)) assert_equal(120, SimpleNumber.fact(5.4)) assert_equal(815915283247897734345611269596115894272000000000, SimpleNumber.fact(40)) end def test_string SimpleNumber.input("10",6) assert_equal(-2863, SimpleNumber.calculate()) assert_equal(120, SimpleNumber.fact("5")) end endЯ использовал лишь один метод для тестирования модуля это assert_equal() , этот метод сравнивает два значения и определяет правильно идет расчет в модуле или нет.
Вот результат выполнения данного тестирования:
Что бы прочитать полную документацию про модульное тестирование в Ruby перейдите по этой ссылке
Комментариев нет:
Отправить комментарий