Sha*_*ane 21 ruby ruby-on-rails
谁能告诉我rspec,水豚和黄瓜之间的区别?
group :development, :test do
gem 'rspec-rails', '~> 2.0'
end
group :test do
gem 'capybara', '~>2.1.0'
end
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,我将Jasmine视为我的单元测试框架.这三个宝石在Ruby环境中做了什么?
Win*_*eld 60
rspec
是一个功能齐全的测试框架,可以让您编写Rails认为的单元测试,功能测试和集成测试.所有这些都通过Rails应用程序的各个层来运行Ruby代码.所有这些测试都模拟对Rails应用程序的请求,但实际上并不是通过网络端到端地运行应用程序.
cucumber
是一个基于浏览器的集成测试框架,它允许编写针对从自动Web浏览器访问的整个Rails应用程序运行的自动化测试.这允许您编写有关JS或CSS的浏览器内行为的自动化测试.Cucumber在集成测试中提供了一个独特的角度,它使用通过正则表达式映射到代码的普通英语规范.这允许更自然的"行为驱动开发"模型 - 从用户的角度以简单的语言描述Web应用程序应该做什么.
capybara
是一个特定的Web驱动程序,支持cucumber
使用无头webkit 的集成测试框架.这允许运行无头(无UI)Chrome/Webkit浏览器进行自动测试.这在开发中非常有用,尤其是在远程测试/持续集成服务器上.
因此rspec
,cucumber
在使用自己的方式指定事物来测试框架时类似. rspec
有一个很好的DSL,在实际代码时非常易读. cucumber
将纯文本描述映射到实际代码.
虽然cucumber
通常在水豚之上使用,但您也可以rspec
用来驱动capybara
集成测试.测试用rspec或黄瓜编写,但capybara
下面是集成引擎.