温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ruby怎样写测试用例

发布时间:2026-10-20 16:41:09 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Ruby 中写测试用例通常有以下几种常见方式,从原生自带到主流框架,循序渐进说明。


一、Ruby 自带的测试(Test::Unit / Minitest)

Ruby 标准库自带 Minitest(早期叫 Test::Unit),无需安装额外 gem。

1️⃣ 使用 Minitest(推荐新手)

示例:被测试代码

# 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(Ruby 社区最流行)

RSpec 是行为驱动开发(BDD)风格的测试框架。

1️⃣ 安装

gem install rspec

2️⃣ 初始化

rspec --init

3️⃣ 写测试

# 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

4️⃣ 运行

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


五、常见测试类型

  • ✅ 单元测试(Unit Test)
  • ✅ 集成测试(Integration Test)
  • ✅ 端到端测试(Capybara + RSpec,用于 Web)

如果你用的是 Rails / Sinatra / 纯 Ruby 项目,可以告诉我,我可以给你更具体的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手