>From the code you've posted, It seems everything is ok and should work. I 
suggest you do some debugging, try using the better_errors gem, it'll give 
you more informative errors. Run your rspec test using the -e flag to 
specify each individual test, through process of elimination you can 
probably get more traction.  Also check your routes to make sure there are 
no syntax errors
On Wednesday, May 1, 2013 8:32:44 PM UTC-4, Mostafa Hussein wrote:
>
> I have searched a lot for a solution, but I could not find it! I am trying 
> to make a rails application after watching Michael Hartl's tutorial and 
> when i fill data manually and submit it nothing happens and nothing records 
> in the Mailers table and I am facing the following error:
>
> Failures:
>
>   1) Mailer pages mail us with valid information should send a mail
>      Failure/Error: expect { click_button submit}.to change(Mailer, 
> :count).by(1)
>        count should have been changed by 1, but was changed by 0
>      # ./spec/requests/mailer_pages_spec.rb:31:in `block (4 levels) in <top 
> (required)>'
> Finished in 0.89134 seconds2 examples, 1 failure
> Failed examples:
>
> rspec ./spec/requests/mailer_pages_spec.rb:30 # Mailer pages mail us with 
> valid information should send a mail
> Randomized with seed 17352
>
> The model file is:
>
> class Mailer < ActiveRecord::Base
>   attr_accessible :company_name, :contact_name, :address, :telephone, :email, 
> :description
>   before_save { |mailer| mailer.email = mailer.email.downcase }
>   validates :company_name, length: { maximum: 50 }
>   validates :contact_name, presence: true, length: { maximum: 40 }
>   VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
>   validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }end
>
> Controller:
>
> class MailersController < ApplicationController
>
>   def new
>     @mailer = Mailer.new
>   end
>
>   def create
>     @mailer = Mailer.new(params[:mailer])
>     if @mailer.save
>       redirect_to root_path
>     else
>       render 'new'
>     end
>   endend
>
> Integration test:
>
> require 'spec_helper'
>
> describe "Mailer pages" do
>
>  subject { page }
>
>
>  describe "mail us" do
>
>      let(:submit) { "Send my Mail"}
>      before { visit mailers_path }
>
>
>      describe "with invalid information" do
>        it "should not send a mail" do
>          expect { click_button submit }.not_to change(Mailer, :count)
>          end
>      end
>
>      describe "with valid information" do
>        before do
>          fill_in "Company name", with: "Mailer Company"
>          fill_in "Contact name", with: "Mailer Contact"
>          fill_in "Address",      with: "Mailer Address"
>          fill_in "Telephone",    with: "123-456-789"
>          fill_in "Email",        with: "[email protected] <javascript:>"
>          fill_in "Description",  with: "something to say"
>        end
>
>        it "should send a mail" do
>          expect { click_button submit}.to change(Mailer, :count).by(1)
>        end  
>      end
>    end
>  end
>
> And the form:
>
> <% provide(:title , 'Mail Us') %><h1>Mail Us</h1><div class="row">
>     <div class="span6 offset3 hero-unit">
> <%= form_for(@mailer) do |f| %>
>     <%= f.label :company_name %>
>     <%= f.text_field :company_name %>
>
>     <%= f.label :contact_name %>
>     <%= f.text_field :contact_name %>
>
>     <%= f.label :address %>
>     <%= f.text_field :address %>
>
>     <%= f.label :telephone %>
>     <%= f.text_field :telephone %>
>
>     <%= f.label :email %>
>     <%= f.text_field :email %>
>
>     <%= f.label :description %>
>     <%= f.text_field :description %>
>
>     <%= f.submit "Send my Mail", class: "btn btn-large btn-primary"%><% end 
> %></div></div>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/bBlaofccZjMJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to