我知道如何用其他语言进行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
我对这里的基础知识有点失落,所以对于这里被认为是最佳实践的任何答案都非常感谢。
答案 0 :(得分:1)
您可以从标准库附带的minitest
测试框架开始。它比直接使用assert
更有效率和简单。
答案 1 :(得分:1)
答案 2 :(得分:1)
Ruby中有几个测试框架
基本的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