I have two models, Sector e Category.
Category has_many :sectors.
I use database_cleaner e rspec call it through this file:

RSpec.configure do |config|
  config.before :suite do
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with :truncation
  end
  config.before :each do
    DatabaseCleaner.start
  end
  config.after :each do
    DatabaseCleaner.clean
  end
end

The test for model Sector is:

describe Sector do
  before(:each) do
    @attr = { :name => "Sector-1" }
  end

  it "should create a new instance given valid attributes" do
    Sector.create!(@attr)
  end

  it "should require a name" do
    no_name_sector = Sector.new(@attr.merge(:name => ""))
    no_name_sector.should_not be_valid
  end
end

It passes and the db is cleaned.
The test for Category is:

describe Category do
  before(:each) do
    sector = Sector.make!
    @attr = { :name => "Category-1", :sector => sector}
  end

  it "should create a new instance given valid attributes" do
    Category.create!(@attr)
  end

  it "should require a name" do
    no_name_category = Category.new(@attr.merge(:name => ""))
    no_name_category.should_not be_valid
  end

  it "should require a Sector" do
    no_sector_category = Category.new(@attr.merge(:sector => nil))
    no_sector_category.should_not be_valid
  end
end

Also this test passes but the db is not cleaned and I have 3 Sectors.
Do you know why the db is not cleaned when I run Category test?

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to