您好我正在关注http://ruby.railstutorial.org/的rails教程。然后我遇到了第3章:rspec gem,我感到沮丧,因为我的程序无法与教程完全相同。我按照每个细节步骤但仍然无法解决错误。然后我继续我自己的项目并稍后处理问题。
现在我很好奇我是否需要在我的程序中使用Rspec?我的意思是它实际上是什么?我在教程中看到的只是它真的像一个检查器?或指导你在这个步骤和下一步之后想要做的事情。
答案 0 :(得分:2)
关于RSpec
RSpec是一个单元测试套件。这不是强制性的,但强烈建议使用测试套件。一个gem,它将帮助您为项目构建测试,以确保它正常工作。在这个项目越来越大的世界里,你要确保你的产品的所有部分随时都在工作。
例如,经过数周的开发功能后,您可能会发现自己需要重构一些代码(难闻的代码,难以维护等等)。
如果您从一开始就编写了测试(也称为规范),那么重构代码会更容易,而不必担心新编写的代码是否会破坏。
如果你没有,那么你无论如何都可以重构你的代码并承担你的产品不再正常工作的风险,或者你可以先编写规范然后重构。
关于Gemfile
关于Gemfile的第二个问题,Gemfile用于定义项目依赖项。由于您的项目将至少在3个不同的环境(生产,开发和测试)中运行,因此您可以为每个环境提供不同的gem(插件)。
例如,RSpec不应该在生产环境中添加,因为它不会在生产中使用,只有在调试/开发功能(开发和测试模式)时才会使用。
当你这样做时:
rails server
它默认在开发模式下启动Rails服务器(使用开发挂钩中定义的gems或根本没有任何挂钩)
如果要在生产中运行Rails服务器,可以执行以下操作:
rails server -e production
以下面的gemfile为例:
source 'https://rubygems.org'
# gem require for ALL mode (yes, rails is a gem)
gem 'rails', '3.2.13'
group :production do
# gems required only in production mode
end
group :test, :development do
# gems required only in development AND test mode
end
group :development do
# gems required only in development mode
end
group :test do
# gems required only in test mode
end
# another gem required for all modes
gem 'jquery-rails'
一本学习Rails的好书http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
关于gemfile http://bundler.io/v1.3/gemfile.html
的一个很好的资源