在 Ruby 中写测试用例通常有以下几种常见方式,从原生自带到主流框架,循序渐进说明。
Ruby 标准库自带 Minitest(早期叫 Test::Unit),无需安装额外 gem。
示例:被测试代码
# calculator.rb
class Calculator
def add(a, b)
a + b
end
end
测试代码
# test_calculator.rb
require 'minitest/autorun'
require_relative 'calculator'
class CalculatorTest < Minitest::Test
def setup
@calc = Calculator.new
end
def test_add
assert_equal 3, @calc.add(1, 2)
end
def test_add_negative
assert_equal(-1, @calc.add(1, -2))
end
end
运行
ruby test_calculator.rb
RSpec 是行为驱动开发(BDD)风格的测试框架。
gem install rspec
rspec --init
# spec/calculator_spec.rb
require_relative '../calculator'
RSpec.describe Calculator do
let(:calc) { Calculator.new }
it 'adds two numbers' do
expect(calc.add(1, 2)).to eq(3)
end
it 'adds negative numbers' do
expect(calc.add(1, -2)).to eq(-1)
end
end
rspec
| Minitest | RSpec |
|---|---|
assert_equal 3, x |
expect(x).to eq(3) |
assert_nil x |
expect(x).to be_nil |
assert_raises { ... } |
expect { ... }.to raise_error |
assert x |
expect(x).to be_truthy |
✅ 一个测试只测一件事
✅ 用 setup / let 复用对象
✅ 测试边界情况(nil、负数、空值)
✅ 命名清晰:test_xxx_should_xxx
如果你用的是 Rails / Sinatra / 纯 Ruby 项目,可以告诉我,我可以给你更具体的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。