[rspec-users] Make classes in a module available to examples

Pat Maddox pergesu at gmail.com
Fri Sep 5 10:58:33 EDT 2008

On Fri, Sep 5, 2008 at 6:25 AM, Ashley Moran
<ashley.moran at patchspace.co.uk> wrote:
> Hi
> Sorry if this is documented somewhere, I can't find it on rspec.info or
> Google.
> Say I have this code (simple example based no the RSpec site):
>  module Bank
>    class Account
>      def balance
>        0
>      end
>    end
>  end
>  describe "A new account" do
>    # what goes here?
>    before do
>      @account = Account.new
>    end
>    it "should have a balance of $0" do
>      @account.balance.should == 0
>    end
>  end
> ...what can I put in the describe block to make the Account class visible?
>  I tried include, but that doesn't work (uninitialized constant Account).
> I don't want to include into the global namespace, because I've got a module
> hierarchy that could be several layers deep, and I don't want to flatten it
> out.

Either fully qualify the class name in the spec:

before(:each) do
  @account = Bank::Account.new

or put the example group in the same module

module Bank
  describe "A new account" do

The RSpec codebase uses the second approach, which I personally prefer.


More information about the rspec-users mailing list