如何用ruby和错误开始tdding?

时间:2012-03-01 22:25:00

标签: ruby tdd

我知道如何用其他语言进行TDD,但我对ruby和错误都不熟悉。我正在努力解决如何设置(玩具)项目的基本原理。我想编写一个计算阶乘(n! = 1 * 2 * 3 * ... * n)的方法。我创建了文件test/factorial_test.rb,到目前为止包含

require 'wrong'
include Wrong

我如何从这里开始?我是否在文件的全局范围内编写断言

assert { factorial(1) == 1 }
assert { factorial(2) == 2 }
#...

(感觉有点奇怪)?或者我应该遵循一些(哪个?)约定并用自己的方法包装每个测试

def one_factorial_should_be_one
  assert { factorial(1) == 1 }
end

我对这里的基础知识有点失落,所以对于这里被认为是最佳实践的任何答案都非常感谢。

3 个答案:

答案 0 :(得分:1)

您可以从标准库附带的minitest测试框架开始。它比直接使用assert更有效率和简单。

答案 1 :(得分:1)

Wrong仅仅提供了一对(公认的智能)断言方法。您仍然需要一个框架来自动运行测试,例如minitest

答案 2 :(得分:1)

Ruby中有几个测试框架

  • 测试::单位
  • MINITEST
  • rspec的
  • shoulda - 类似于rspec
  • cucumber - 一个BDD测试框架

基本的Ruby测试框架是Test :: Unit。一个简单的例子如下:

require 'test/unit'
class MyTest < Test::Unit::TestCase
  def test_equality
    assert_equal(1,1)
  end
end

最近Minitest已合并到Ruby标准库中,因此如果您希望使用此库,则无需安装任何内容。一个简单的minitest规范如下:

require 'minitest/autorun'
describe Factorial do
  it "should provide factorial of 1 as 1" do
    factorial(1).must_equal 1
  end
end