Cam*_*ter 7 ruby rubygems rspec ruby-on-rails
我正在使用Code School的Rspec课程进行测试,并将ruby 2.2.1,rails 4.2.5.1和rspec 3.4.4安装到我的Ubuntu系统中.正如我输入的第一个视频描述
rspec --init
Run Code Online (Sandbox Code Playgroud)
在我的项目文件夹中,它创建了一个spec文件夹,在其中我创建了一个名为lib的新目录.在那里我放置了两个.rb文件:
touch spec/lib/zombie_spec.rb
touch spec/lib/zombie.rb
Run Code Online (Sandbox Code Playgroud)
spec_helper.rb通常在spec文件夹中创建.如果我跑:
rspec spec/lib/zombie_spec.rb
Run Code Online (Sandbox Code Playgroud)
对于zombie_spec.rb中的以下代码:
require "spec_helper"
describe "Zombie" do
it "is named Ash"
end
Run Code Online (Sandbox Code Playgroud)
一切都按预期运行并显示在视频中.但如果我采取下一步并添加
require "zombie"
Run Code Online (Sandbox Code Playgroud)
在第一次需要之后到zombie_spec.rb文件,我收到错误:
cannot load such file -- zombie (LoadError)
Run Code Online (Sandbox Code Playgroud)
zombie.rb看起来完全像这样:
class Zombie
end
Run Code Online (Sandbox Code Playgroud)
小智 5
通常,您不希望将其zombie.rb放在规范文件夹中,因为它不是测试文件,但我不熟悉代码学校教程。RSpec 对文件路径做了一些魔法,因此它可能会查找错误的位置。
您可以尝试require_relative "./zombie"或者移出zombie.rb您的规范文件和require "<path_to_zombie>/zombie".
zombie.rb应该位于{project_home}/lib/@kclowes 指出的位置。
在您的情况下,由于它位于同一文件夹中(不推荐),您应该使用以下格式:require './zombie'而不是require 'zombie'因为后者用于标准和/或第三方库。
这个问题已经有几个月了,但我正在回答以防有人偶然发现这个问题。
| 归档时间: |
|
| 查看次数: |
6080 次 |
| 最近记录: |