Ruby:
Письмо тестів
Як:
Ruby має вбудовану бібліотеку під назвою Test::Unit для написання модульних тестів, упаковуючи практики тестування в прості структури. Однак, спільнота Ruby часто схиляється до використання сторонніх бібліотек, таких як RSpec та Minitest через їх підвищену виразність та гнучкість.
Використання Test::Unit:
require 'test/unit'
class CalculatorTest < Test::Unit::TestCase
def test_addition
result = 2 + 2
assert_equal 4, result
end
endЗапустіть ваш тестовий файл з терміналу, і ви повинні отримати результат, що вказує на успіх або невдачу тестів:
Loaded suite test_calculator
Started
.
Finished in 0.001288 секунд.
1 тест, 1 твердження, 0 несправностей, 0 помилок, 0 в очікуванні, 0 пропущено, 0 повідомлень
100% пройденоВикористання RSpec:
RSpec — популярний фреймворк для розробки на основі поведінки (BDD) для Ruby. Встановіть гем за допомогою команди gem install rspec, потім ініціалізуйте його у своєму проекті за допомогою rspec --init.
# calculator_spec.rb
require_relative '../calculator'
describe Calculator do
it 'правильно додає два числа' do
expect(Calculator.add(2, 2)).to eq(4)
end
endЗапустіть тести з командою rspec. Приклад результату:
.
Закінчено за 0.002 секунд (файли завантажувались 0.1секунд)
1 приклад, 0 невдачВикористання Minitest:
Minitest надає повний набір можливостей для тестування, підтримуючи TDD, BDD, макетування та бенчмаркінг. Встановіть його за допомогою команди gem install minitest і використовуйте так:
# test_calculator.rb
require 'minitest/autorun'
require_relative '../calculator'
class CalculatorTest < Minitest::Test
def test_addition
assert_equal 4, Calculator.add(2, 2)
end
endЗапустіть ваш тестовий файл безпосередньо або через задачу rake, налаштовану для minitest. Зразок результату:
Опції запуску: --seed 33407
# Виконання:
.
Закінчено за 0.001027с, 974.5922 запусків/с, 974.5922 тверджень/с.
1 запуск, 1 твердження, 0 несправностей, 0 помилок, 0 пропусківІмплементуючи тести у ваших проектах на Ruby, використовуючи ці бібліотеки, ви дотримуєтесь найкращих практик, що призводить до створення більш надійних та зручних у обслуговуванні баз коду.