Rspec 'cannot load such file'

Viewed 10651

I am doing the Testing with Rspec course of Code School and have installed ruby 2.2.1, rails 4.2.5.1 and rspec 3.4.4 to my Ubuntu system. As the first video describes I typed

rspec --init

in my project folder, which created a spec folder, in which i made a new directory called lib. There i placed the both .rb files:

touch spec/lib/zombie_spec.rb
touch spec/lib/zombie.rb

The spec_helper.rb is created normally in the spec folder. If i run:

rspec spec/lib/zombie_spec.rb

for the following code in zombie_spec.rb:

require "spec_helper"
describe "Zombie" do
    it "is named Ash"
end

everything runs as expected and shown in the video. But if i take the next step and add

require "zombie"

to the zombie_spec.rb file after the first require, I get the error:

cannot load such file -- zombie (LoadError)

zombie.rb looks exactly like this:

class Zombie
end
4 Answers

zombie.rb should be located in {project_home}/lib/ as pointed out by @kclowes.

In your case since it lives in the same folder (not recommended), you should use the format: require './zombie' and not require 'zombie' because the latter is used for standard and/or third party libraries.

This question is months old but I am answering in case somebody stumbles upon this problem.

If you only want to require a file in exactly one other file, this is another possibility:

require "#{::Rails.root}/spec/support/models/shared_examples/<my_file>"

(Rails 6.0.x)

Related