0

嗨,我正在关注来自http://ruby.railstutorial.org/的 Rails 教程。然后我遇到了第 3 章:rspec gem,我很沮丧,因为我的程序无法得到与教程完全相同的东西。我遵循了每一个细节步骤,但仍然无法解决错误。然后我继续我自己的项目并在以后处理问题。

现在我很好奇我的程序中是否需要 Rspec ?我的意思是它实际上是为了什么?我在教程中看到的只是它实际上就像一个检查器吗?或指导您在此步骤和下一步之后应该做什么。

4

1 回答 1

2

关于 RSpec

RSpec 是一个单元测试套件。这不是强制性的,但强烈建议使用测试套件。一个可以帮助您为项目构建测试以确保其正常工作的 gem。在这个项目越来越大的世界中,您希望确保您的产品的所有部分在任何时候都可以正常工作。

例如,在开发了数周的功能之后,您可能会发现自己需要重构一些代码(难闻代码、难以维护等)。

如果您从一开始就编写测试(也称为规范),那么重构代码会容易得多,而不必担心新编写的代码是否会破坏任何内容。

如果您不这样做,那么您无论如何都可以重构您的代码并冒您的产品不再正常工作的风险,或者您可以先编写规范然后重构。

关于 Gemfile

关于您关于 Gemfile 的第二个问题,Gemfile 用于定义您的项目依赖项。由于您的项目将在至少 3 个不同的环境(生产、开发和测试)中运行,因此您可以为每个环境使用不同的 gem(插件)。

例如,不应在生产环境中添加 RSpec,因为它不会在生产环境中使用,只能在调试/开发功能(开发和测试模式)时使用。

当你这样做时:

rails server

它默认在开发模式下启动 Rails 服务器(使用开发钩子中定义的 gem 或根本没有任何钩子)

如果你想在生产环境中运行 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

于 2013-07-08T14:07:23.327 回答