Skip to content

Commit

Permalink
Making fixtures more testable. All tests pass!
Browse files Browse the repository at this point in the history
  • Loading branch information
lunks committed May 6, 2011
1 parent 4c792f0 commit 2757697
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 9 deletions.
3 changes: 2 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'bundler/setup'
require 'spec/rake/spectask'
Bundler::GemHelper.install_tasks
Spec::Rake::SpecTask.new
Spec::Rake::SpecTask.new
task :default => :spec
14 changes: 9 additions & 5 deletions lib/taza/fixtures.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
require 'taza/fixture'

module Taza
dirs = Dir.glob(File.join(Fixture.base_path,'*/'))
dirs.unshift Fixture.base_path
dirs.each do |dir|
mod = dir.sub(Fixture.base_path,File.join(File.basename(Fixture.base_path),'')).camelize.sub(/::$/,'')
self.class_eval <<-EOS
def self.load_fixtures
dirs = Dir.glob(File.join(Fixture.base_path,'*/'))
dirs.unshift Fixture.base_path
dirs.each do |dir|
mod = dir.sub(Fixture.base_path,File.join(File.basename(Fixture.base_path),'')).camelize.sub(/::$/,'')
self.class_eval <<-EOS
module #{mod}
def self.included(other_module)
fixture = Fixture.new
Expand All @@ -20,5 +21,8 @@ def self.included(other_module)
end
end
EOS
end
end

self.load_fixtures
end
3 changes: 2 additions & 1 deletion spec/fixtures_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@

describe "Taza::Fixtures" do

Taza::Fixture.any_instance.stubs(:base_path).returns('./spec/sandbox/fixtures/')
Taza::Fixture.stubs(:base_path).returns('./spec/sandbox/fixtures/')
Taza.load_fixtures
include Taza::Fixtures

it "should be able to look up a fixture entity off fixture_methods module" do
Expand Down
3 changes: 1 addition & 2 deletions spec/site_fixtures_spec.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
require 'spec/spec_helper'
require 'ruby-debug'
describe "Site Specific Fixtures" do
before do
Taza::Fixture.stubs(:base_path).returns(File.join('.','spec','sandbox','fixtures',''))
Taza.load_fixtures
include Taza::Fixtures::FooSite
end

it "should be able to access fixtures in sub-folders" do
bars(:foo).name.should eql("foo")
Expand Down

0 comments on commit 2757697

Please sign in to comment.