我的意思是,哪些工具用于单元测试,哪些用于BDD,是否存在明显的差异?
我只是从C#学习Ruby,我熟悉的工具有用于纯单元测试/ TDD的xUnit样式,以及用于BDD /集成测试的Cucumber / SpecFlow。当然,如果您愿意,可以使用单元测试工具进行集成测试。
我遇到过Ruby的主要测试工具是Test :: Unit,RSpec和Cucumber(显然还有很多,但这些似乎是最受欢迎的,因此可能是一个很好的选择)
我不是在寻找一长串的工具 - 如果有一个主要的竞争者我错过了那么请告诉我,但我宁愿在这个阶段保持简单,而不是开始使用'工具Z beta与在MegaChode平台上运行的库X扩展或其他任何东西。毕竟,我只是一个可怜的迷茫的.Net家伙!
很明显,Test :: Unit是为单元测试设计的,而Cucumber是为BDD设计的。但我不确定RSpec - 有些人似乎将它用作低级单元测试工具,而其他人则用于更高级别的BDD。与此同时,有些人似乎使用Test :: Unit(和类似的)以及BDD的其他库。
为了让您了解我的来源,我看到的方式是您可以使用BDD工具编写更多功能性,可测试的规范(业务人员可能会理解),然后执行低级别的操作,当您实现Cuke(或其他)所需的功能时,开发人员将TDD与您的单元测试工具集中在一起。
在Ruby中是否有一种普遍接受的方式来做这些事情,或者我是否需要忘记这样一个疯狂的想法并使用似乎可以做的工作?
干杯, 格兰特
答案 0 :(得分:4)
我认为大多数Rubyists已经在RSpec而不是Test :: Unit上进行了标准化测试。如果您正在使用Rails应用程序,那么有RSpec-Rails,然后是Cucumber,您可以在它上面进行分层。
获取The Rspec Book @ http://www.pragprog.com/titles/achbd/the-rspec-book
的副本答案 1 :(得分:0)
MiniTest
包含 xUnit 和 spec 样式测试界面(能够将它们组合在同一个文件中)。
自Ruby2.2以来,它作为标准宝石的一部分包含在内。
两者都可以包含在同一个文件中,这样可以轻松地在样式或其他测试工具之间进行转换,例如 RSpec 和 Test :: Unit
require 'minitest/autorun'
describe Math do
describe 'addition' do
it '1+1=2' do
(1+1).must_equal 2
end
end
end
class MathTest < Minitest::Test
def test_1_plus_1_equal_2
assert_equal 2, 1+1
end
end