Однажды во время учебы по одному из предметов было задание создать модульный тест для двух методов 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 перейдите по этой ссылке

Комментариев нет:
Отправить комментарий