Usermodel
has_many :addresses, :dependent => :destroy
Addressmodel
belong_to :user
describe User do
before(:each) do
@user_new = {:name => "chinna",:email => "chinna@yopmail.com",:password => "chinnaram",:password_confirmation => "chinnaram"}
end
it "should create a new user details" do
@user_attr = User.create!(@user_new)
end
#validation for rspec has_many
it "Should contain many Addresses" do
@user = User.new(@user_attr)
@user.addresses << Address.new(:user_id => @user.id)
@user.addresses << Address.new(:user_id => @user.id)
@user.should have(2).addresss
end
#dependent destroy for invitation
it "should destroyed user addresss details" do
@user = User.new(@user_att)
user = User.new(:user_id => @user.id,:location =>"bangalore")
@user.destroy
Address.find_by_id(address.id).should be_nil
end
end
###for address model belong_to validation for rspec
describe Address do
before(:each) do
@user_new = {:name => "chinna",:email => "chinna@yopmail.com",:password => "chinnaram",:password_confirmation => "chinnaram"}
@user = User.create!(@user_new)
@addr_new = {:location=> "bangalore",:state => "karnataka",:user_id => @user.id}
end
it "should belongs to user" do
@address = Address.new
@address.user.should be_nil
@address.user = @user
@address.user.should eql(@user)
end
end
############some of important notes.....
Cucumber::Rails::Database.javascript_strategy = :transaction ###important change to truncation to transaction
begin
DatabaseCleaner.strategy = :transaction ###important change to truncation to transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
RUBY BASICS
has_many :addresses, :dependent => :destroy
Addressmodel
belong_to :user
describe User do
before(:each) do
@user_new = {:name => "chinna",:email => "chinna@yopmail.com",:password => "chinnaram",:password_confirmation => "chinnaram"}
end
it "should create a new user details" do
@user_attr = User.create!(@user_new)
end
#validation for rspec has_many
it "Should contain many Addresses" do
@user = User.new(@user_attr)
@user.addresses << Address.new(:user_id => @user.id)
@user.addresses << Address.new(:user_id => @user.id)
@user.should have(2).addresss
end
#dependent destroy for invitation
it "should destroyed user addresss details" do
@user = User.new(@user_att)
user = User.new(:user_id => @user.id,:location =>"bangalore")
@user.destroy
Address.find_by_id(address.id).should be_nil
end
end
###for address model belong_to validation for rspec
describe Address do
before(:each) do
@user_new = {:name => "chinna",:email => "chinna@yopmail.com",:password => "chinnaram",:password_confirmation => "chinnaram"}
@user = User.create!(@user_new)
@addr_new = {:location=> "bangalore",:state => "karnataka",:user_id => @user.id}
end
it "should belongs to user" do
@address = Address.new
@address.user.should be_nil
@address.user = @user
@address.user.should eql(@user)
end
end
############some of important notes.....
Cucumber::Rails::Database.javascript_strategy = :transaction ###important change to truncation to transaction
begin
DatabaseCleaner.strategy = :transaction ###important change to truncation to transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
RUBY BASICS
Comments
Post a Comment