在Ruby中,我們可以使用test/unit
庫進(jìn)行錯(cuò)誤處理模擬測試
首先,創(chuàng)建一個(gè)名為calculator.rb
的文件,其中包含一個(gè)簡單的計(jì)算器方法,該方法可能會(huì)引發(fā)異常:
# calculator.rb
def add(a, b)
raise ArgumentError, "Invalid arguments" if a.nil? || b.nil?
a + b
end
接下來,創(chuàng)建一個(gè)名為calculator_test.rb
的測試文件:
# calculator_test.rb
require 'test/unit'
require_relative 'calculator'
class CalculatorTest < Test::Unit::TestCase
def setup
@calculator = Calculator.new
end
def test_add_with_valid_arguments
assert_equal 4, @calculator.add(2, 2)
end
def test_add_with_invalid_arguments
assert_raise(ArgumentError) { @calculator.add(nil, 2) }
assert_raise(ArgumentError) { @calculator.add(2, nil) }
assert_raise(ArgumentError) { @calculator.add(nil, nil) }
end
end
在這個(gè)測試文件中,我們定義了兩個(gè)測試方法:
test_add_with_valid_arguments
:測試當(dāng)提供有效參數(shù)時(shí),add
方法是否正確執(zhí)行。test_add_with_invalid_arguments
:測試當(dāng)提供無效參數(shù)時(shí),add
方法是否引發(fā)ArgumentError
異常。要運(yùn)行測試,請(qǐng)?jiān)诿钚兄休斎胍韵旅睿?/p>
ruby calculator_test.rb
這將運(yùn)行測試并顯示結(jié)果。如果add
方法的實(shí)現(xiàn)是正確的,那么所有測試應(yīng)該通過。如果有任何錯(cuò)誤,測試將失敗并顯示相應(yīng)的錯(cuò)誤信息。