在Ruby中使用Rails测试语法

时间:2012-08-31 14:32:31

标签: ruby-on-rails ruby unit-testing

像大多数人一样,我在Ruby之前学过Rails,现在我想更好地了解Ruby。
我正在制作一些脚本,我想测试它们 我很惊讶你不能在普通的ruby脚本中使用Rails的测试语法。以下代码不起作用:

require "test/unit"
class MyTest < Test::Unit::TestCase
  test "one plus one should be equal to two" do
    assert_equal 1 + 1, 2
  end
end

# Error: wrong number of arguments (1 for 2) (ArgumentError)

您必须使用此代码:

require "test/unit"
class MyTest < Test::Unit::TestCase
  def one_plus_one_should_be_equal_to_two
    assert_equal 1 + 1, 2
  end
end

这对我来说似乎不太可读 是否可以在纯Ruby脚本中使用“声明性”语法?

谢谢!

1 个答案:

答案 0 :(得分:3)

根据Rails的API,test方法在ActiveSupport::Testing::Declarative 模块中定义,并使用一种元编程来添加新的测试方法。

如果您尚未安装Rails gem,则只需安装activesupport gem:

gem install activesupport

现在您只需要它并让您的班级继承自ActiveSupport::TestCase 这是完整的代码:

require "test/unit"
require "active_support"
class MyTest < ActiveSupport::TestCase
  test "one plus one should be equal to two" do
    assert_equal 1 + 1, 2
  end
end