Search Results

Search found 7350 results on 294 pages for 'rspec rails'.

Page 3/294 | < Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • Testing Rails Metal/Rack with RSpec?

    - by Matt Darby
    Say I have a Metal class named Preview. How do I test it with RSpec? When I try: require 'spec_helper' describe Preview do it "should return the posted content" do post "/preview", :content => "*title*" response.body.should == "*title*" end end I get: undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098> It seems that RSpec doesn't load up the :post method if the test isn't explicitly for a Controller. I've tried specifying :type => :controller to no avail.

    Read the article

  • Problems with validates_inclusion_of, acts_as_tree and rspec

    - by Jens Fahnenbruck
    I have problems to get rspec running properly to test validates_inclusion_of my migration looks like this: class CreateCategories < ActiveRecord::Migration def self.up create_table :categories do |t| t.string :name t.integer :parent_id t.timestamps end end def self.down drop_table :categories end end my model looks like this: class Category < ActiveRecord::Base acts_as_tree validates_presence_of :name validates_uniqueness_of :name validates_inclusion_of :parent_id, :in => Category.all.map(&:id), :unless => Proc.new { |c| c.parent_id.blank? } end my factories: Factory.define :category do |c| c.name "Category One" end Factory.define :category_2, :class => Category do |c| c.name "Category Two" end my model spec looks like this: require 'spec_helper' describe Category do before(:each) do @valid_attributes = { :name => "Category" } end it "should create a new instance given valid attributes" do Category.create!(@valid_attributes) end it "should have a name and it shouldn't be empty" do c = Category.new :name => nil c.should be_invalid c.name = "" c.should be_invalid end it "should not create a duplicate names" do Category.create!(@valid_attributes) Category.new(@valid_attributes).should be_invalid end it "should not save with invalid parent" do parent = Factory(:category) child = Category.new @valid_attributes child.parent_id = parent.id + 100 child.should be_invalid end it "should save with valid parent" do child = Factory.build(:category_2) child.parent = Factory(:category) # FIXME: make it pass, it works on cosole, but I don't know why the test is failing child.should be_valid end end I get the following error: 'Category should save with valid parent' FAILED Expected #<Category id: nil, name: "Category Two", parent_id: 5, created_at: nil, updated_at: nil to be valid, but it was not Errors: Parent is missing On console everything seems to be fine and work as expected: c1 = Category.new :name => "Parent Category" c1.valid? #=> true c1.save #=> true c1.id #=> 1 c2 = Category.new :name => "Child Category" c2.valid? #=> true c2.parent_id = 100 c2.valid? #=> false c2.parent_id = 1 c2.valid? #=> true I'm running rails 2.3.5, rspec 1.3.0 and rspec-rails 1.3.2 Anybody, any idea?

    Read the article

  • rspec mocking object property assignment

    - by charlielee
    I have a rspec mocked object, a value is assign to is property. I am struggleing to have that expectation met in my rspec test. Just wondering what the sytax is? The code: def create @new_campaign = AdCampaign.new(params[:new_campaign]) @new_campaign.creationDate = "#{Time.now.year}/#{Time.now.mon}/#{Time.now.day}" if @new_campaign.save flash[:status] = "Success" else flash[:status] = "Failed" end end The test it "should able to create new campaign when form is submitted" do campaign_model = mock_model(AdCampaign) AdCampaign.should_receive(:new).with(params[:new_campaign]).and_return(campaign_model) campaign_model.should_receive(:creationDate).with("#{Time.now.year}/#{Time.now.mon}/#{Time.now.day}")campaign_model.should_receive(:save).and_return(true) post :create flash[:status].should == 'Success' response.should render_template('create') end The problem is I am getting this error: Spec::Mocks::MockExpectationError in 'CampaignController new campaigns should able to create new campaign when form is submitted' Mock "AdCampaign_1002" received unexpected message :creationDate= with ("2010/5/7") So how do i set a expectation for object property assignment? Thanks

    Read the article

  • how rspec creates database between specs

    - by timpone
    This is a bit of a naive / simple question. I'm having a hard time finding this info online. Basically, does rspec run rake db:test:prepare between every rspec group? Or is it between every example or model? Or does the schema get loaded once and then truncated between each. I need to add a rake task directly after this call to create a view since they are not supported in schema.rb. Either a link or explanation would be greatly appreciated so that I know where to insert my rake task to create a view. Or whether there is a callback like rake db:test:after_prepare thx

    Read the article

  • Test Redirection with RSpec and Capybara (Rails)

    - by balanv
    I just have learnt how cool RSpec and Cabybara is, and now working around it to learn writing actual test. I am trying to check if after clicking a link, there is a redirection to a specific page. Below is the scenario 1) I have a page /projects/list - I have an anchor with html "Back" and it links to /projects/show Below is the test i wrote in rspec describe "Sample" do describe "GET /projects/list" do it "sample test" do visit "/projects/list" click_link "Back" assert_redirected_to "/projects/show" end end end The test fails with a failure message like below Failure/Error: assert_redirected_to "/projects/show" ArgumentError: @request must be an ActionDispatch::Request Please suggest me on how i should test the redirection and what am i doing wrong?

    Read the article

  • Error while starting Rails server

    - by Girish Anand
    Hello i am new to ruby and rails ... but when i am starting the rail server i am getting this error This is the error i am getting D:\mynewapp>ruby script/server = Booting WEBrick = Rails 2.3.5 application starting on http://0.0.0.0:3000 D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': n such file to load -- rush (MissingSourceFile) from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inblock in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:521:in new_constants_in' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inrequire' from D:/mynewapp/vendor/gems/delayed_job-1.7.0/lib/delayed/worker.r 1:in <top (required)>' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inblock in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:521:in new_constants_in' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inrequire' from D:/mynewapp/vendor/gems/delayed_job-1.7.0/lib/delayed_job.rb:6 n <top (required)>' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inblock in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:521:in new_constants_in' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inrequire' from D:/mynewapp/config/environment.rb:39:in block in <top (requir )>' from D:/ruby/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/initializer.rb:1 :inrun' from D:/mynewapp/config/environment.rb:9:in <top (required)>' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inblock in require' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:521:in new_constants_in' from D:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/active_s port/dependencies.rb:156:inrequire' from D:/ruby/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/commands/server. :84:in <top (required)>' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from D:/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from script/server:3:in' Any help will be appreciated Thanks in Advance

    Read the article

  • Test Ruby-on-Rails controller with RSpec and different route name

    - by jhwist
    I have a Rails model named Xpmodule with a corresponding controller XpmoduleController. class XpmoduleController < ApplicationController def index @xpmodule = Xpmodule.find(params[:module_id]) end def subscribe flash[:notice] = "You are now subscribed to #{params[:subscription][:title]}" redirect_to :action => :index end end The original intent was to name the model Module which for obvious reasons doesn't work. However I still want to have the URLs look like /module/4711/ therefore I added this to my routes.rb: map.connect '/module/:module_id', :controller => 'xpmodule', :action => 'index' map.connect '/module/:module_id/subscribe', :controller => 'xpmodule', :action => 'subscribe' Now I want to test this controller with Rspec: describe XpmoduleController do fixtures :xpmodules context "index" do it "should assign the current xpmodule" do xpm = mock_model(Xpmodule) Xpmodule.should_receive(:find).and_return(xpm) get "index" assigns[:xpmodule].should be_an_instance_of(Xpmodule) end end end for which I get No route matches {:action=>"index", :controller=>"xpmodule"}. Which of course is sort-of right, but I don't want to add this route just for testing purposes. Is there a way to tell Rspec to call a different URL in get?

    Read the article

  • Is it possible to use best_in_place with typeahead from twitter bootstrap?

    - by Dave H
    Basically, I am using best_in_place in my rails webapp to let users edit their profile info in place. The thing is, I would like users to be presented with a typeahead form for certain entries.. Here's what I'm working with: <p>College/University: <input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="8" data-source='["University of Pennsylvania","Harvard","Yale","Princeton","Cornell","Brown","Columbia","Dartmouth"]'></p> This gives me a working form box with typeahead. However, I want to be able to wrap this in best_in_place with something like <%= best_in_place @student, :education %> so that users only see the typeahead form when they click on the text, and upon clicking away from the box or hitting enter the selection is stored in the database. Is there a reasonably easy way to do this?

    Read the article

  • Arbitrary attributes error with has_one association and Factory Girl

    - by purpletonic
    I'm trying to build a basic shopping cart for a Rails app I'm working on. Nothing special, - the shopping cart has many line_items - each line_item has_one product associated and a quantity with it class Cart < ActiveRecord::Base attr_accessible :line_items has_many :line_items, :dependent => :destroy end class LineItem < ActiveRecord::Base attr_accessible :quantity, :product belongs_to :cart has_one :product end I'm trying to use RSpec to test this association, but i'm doing something wrong as I'm getting an error that says: DEPRECATION WARNING: You're trying to create an attribute 'line_item_id'. Writing arbitrary attributes on a model is deprecated, and I'm not sure why. In my factories.rb file I'm defining the line_item factory as follows: factory :line_item do quantity { Random.rand(1..5) } product end factory :cart do factory :cart_with_two_line_items do ignore do line_item_count 2 end after(:create) do |cart, evaluator| FactoryGirl.create_list(:line_item, evaluator.line_item_count, cart_id: cart) end end end Any pointers where I'm going wrong, it's probably something basic, but I'm still quite new to Rspec. Thanks in advance.

    Read the article

  • Rspec Faker has_one fail in view

    - by Victor Martins
    I' trying to fix this for hours... I have this on a controller rspec test: it "show action should render show template" do task = Task.make task.mission = Mission.make get :show, :id => task response.should render_template(:show) end But it fails rendering the view because of this: <%=h @task.mission.name %> I don't get it... :/

    Read the article

  • Rspec - Rails - How to follow a redirect

    - by Jonas Söderström
    Does anyone know how to make rspec follow a redirect (in a controller spec)? (e.g test/unit has follow_redirect!) I have tried "follow_redirect!" and "follow_redirect" but only get undefined method `follow_redirect!' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_1:0xb6df5294>

    Read the article

  • Stubbing a before_filter with RSpec

    - by TheDelChop
    Guys, I'm having trouble understanding why I can't seem to stub this controller method :load_user, since all of my tests fail if I change the actual implementation of :load_user to not return and instance of @user. Can anybody see why my stub (controller.stub!(:load_user).and_return(@user)) seems to fail to actually get called when RSpec makes a request to the controller? require 'spec_helper' describe TasksController do before(:each) do @user = Factory(:user) sign_in @user @task = Factory(:task) User.stub_chain(:where, :first).and_return(@user) controller.stub!(:load_user).and_return(@user) end #GET Index describe "GET Index" do before(:each) do @tasks = 7.times{Factory(:task, :user = @user)} @user.stub!(:tasks).and_return(@tasks) end it "should should find all of the tasks owned by a user" do @user.should_receive(:tasks).and_return(@tasks) get :index, :user_id = @user.id end it "should assign all of the user's tasks to the view" do get :index, :user_id = @user.id assigns[:tasks].should be(@tasks) end end #GET New describe "GET New" do before(:each) do @user.stub_chain(:tasks, :new).and_return(@task) end it "should return a new Task" do @user.tasks.should_receive(:new).and_return(@task) get :new, :user_id = @user.id end end #POST Create describe "POST Create" do before(:each) do @user.stub_chain(:tasks, :new).and_return(@task) end it "should create a new task" do @user.tasks.should_receive(:new).and_return(@task) post :create, :user_id = @user.id, :task = @task.to_s end it "saves the task" do @task.should_receive(:save) post :create, :user_id = @user.id, :task = @task end context "when the task is saved successfully" do before(:each) do @task.stub!(:save).and_return(true) end it "should set the flash[:notice] message to 'Task Added Successfully'"do post :create, :user_id = @user.id, :task = @task flash[:notice].should == "Task Added Successfully!" end it "should redirect to the user's task page" do post :create, :user_id = @user.id, :task = @task response.should redirect_to(user_tasks_path(@user.id)) end end context "when the task isn't saved successfully" do before(:each) do @task.stub(:save).and_return(false) end it "should return to the 'Create New Task' page do" do post :create, :user_id = @user.id, :task = @task response.should render_template('new') end end end it "should attempt to authenticate and load the user who owns the tasks" do context "when the tasks belong to the currently logged in user" do it "should set the user instance variable to the currently logged in user" do pending end end context "when the tasks belong to another user" do it "should set the flash[:notice] to 'Sorry but you can't view other people's tasks.'" do pending end it "should redirect to the home page" do pending end end end end class TasksController < ApplicationController before_filter :load_user def index @tasks = @user.tasks end def new @task = @user.tasks.new end def create @task = @user.tasks.new if @task.save flash[:notice] = "Task Added Successfully!" redirect_to user_tasks_path(@user.id) else render :action => 'new' end end private def load_user if current_user.id == params[:user_id].to_i @user = User.where(:id => params[:user_id]).first else flash[:notice] = "Sorry but you can't view other people's tasks." redirect_to root_path end end end Can anybody see why my stub doesnt' work? Like I said, my tests only pass if I make sure that load_user works, if not, all my tests fail which makes my think that RSpec isn't using the stub I created. Thanks, Joe

    Read the article

  • Passing direct parameters to a Controller#method when testing via RSpec

    - by gmile
    Normally to pass parameters via in RSpec we do: params[:my_key] = my_value get :my_method Where my_method deals with what it received from params. But in my controller I have a method, which takes args directly i.e.: def my_method(*args) ... end How do I call the method with those args from within the test? I've tried get :my_method(args) but Ruby interpreter complains about syntax error.

    Read the article

  • Faster RSpec with JRuby

    - by jpoz
    Hello, I'm pretty new to the whole JRuby world. I'm using RSpec on a pretty big test suite. I'd like to be able to run the specs frequently but the JVM takes so long to startup it's becoming a real time drain. Is there a way to keep the JVM running? or a way to get specs to run faster with JRuby? Thanks in advance for the help, JPoz

    Read the article

  • RSpec - mocking a class method

    - by Chris Kilmer
    I'm trying to mock a class method with rspec: lib/db.rb class Db def self.list(options) Db::Payload.list(options) end end lib/db/payload.rb class Db::Payload def self.list(options={}) end end In my spec, I'm trying to setup the expectation Db::Payload.list will be called when I call Db.list: describe Db do before(:each) do @options = {} Db::Payload.should_receive(:list).with(@options) end it 'should build the LIST payload' do Db.list(@options) end end The problem is that I am always receiving the following error: undefined method `should_receive' for Db::Payload:Class Any help understanding this error would be most appreciated :-)

    Read the article

  • Reloading an object not working in rspec

    - by Eric Baldwin
    I am trying to test a controller method with the following code: it "should set an approved_at date and email the campaign's client" do @campaign = Campaign.create(valid_attributes) post :approve, id: @campaign.id.to_s @campaign.reload @campaign.approved_at.should_not be(nil) end However, when I run this test, I get the following error: Failure/Error: @campaign.reload ActiveRecord::RecordNotFound: Couldn't find Campaign without an ID When I run the analagous lines in the rails console, the reload works and the value is set as I need it to be. Why isn't reload working for me when I run the code in an rspec test?

    Read the article

  • rspec nested ( has many resource ) no route found error

    - by Surya
    My calendar resource is a nested resource under profile map.resources :profiles, :has_many=>[:calendar] I am trying to write a rspec spec for calendarcontroller it "should use supplied date" do get :show , :month = '09' , :year = '2010' end But i get an error stating No route matches {:month="09", :year="2010", :controller="calendar", :action="show"} Any idea how i could get around this ?

    Read the article

  • webrat, rspec, nokogiri segfault

    - by adamaig
    I'm getting a segfault in nokogiri (1.4.1) run (under cucumber 0.6.1/webrat 0.7.0/rspec 1.3.x) response.should have_selector("div", :class => "fieldWithErrors") and the div in the page is actually <div class="fieldWithErrors validation_error"> stuff </div> Everything runs fine if I just test nokogiri against a test document >> require 'nokogiri' >> doc = Nokogiri::HTML.parse("<div class='a b'>love to have problems</div>") => ... >> doc.css(".a") => [#<Nokogiri::XML::Element:0x3d62ac name="div" attributes=[#<Nokogiri::XML::Attr:0x3d6258 name="class" value="a b">] children=[#<Nokogiri::XML::Text:0x3d5e68 "love to have problems">]>] So I want to know how to setup a minimal webrat test of an html fragment document to help file a bug.

    Read the article

  • How to test css property in rspec?

    - by Senthil
    I'm using tabnav plugin for Rails and I want to use rpsec to make sure it highlights properly. describe 'account navigation links' do it 'should have account settings link' do get '/account/settings' response.should have_tag("li", :text => "Account Settings") end it 'should be highlighted' do get '/account/settings' response.should have_tag("li", :color => "Account Settings") end end However the above code doesn't seem to work. I'm using webrat with rspec btw. Any help? Thanks.

    Read the article

  • RSpec: Expectation on model's not working while testing controller

    - by gmile
    I'm trying to write a functional test. My test looks as following: describe PostsController do it "should create a Post" do Post.should_receive(:new).once post :create, { :post => { :caption => "ThePost", :category => "MyCategory" } } end end My PostsController (a part of it actually) looks as following: PostController < ActiveRecord::Base def create @post = Post.new(params[:post]) end end Running the test I'm always receiving a failure, which says that the Post class expected :new but never got it. Still, the actual post is created. I'm a newbie to RSpec. Am I missing something?

    Read the article

  • disabling transactional fixtures in Rspec has no effect

    - by Dia
    Due to a legacy database I'm using, I'm stuck with MySQL using MyISAM, which means my tables don't support transactions. This is causing the tests to fail, since table data generated (I'm using factory_girl for fixtures) by the tests are not reverted for each scenario. I discovered that Rspec exposes the config.use_transactional_fixtures config setting in spec_helper.rb. which is set to true by default. When I set it to false, I don't see any effect on my tests; they still fail due to duplicate records. Isn't that setting supposed to automatically unroll any changes made to the DB? Or am I supposed to do that manually?

    Read the article

  • Rails Rspec testing not saving a transactional model

    - by NolanDC
    I'm currently testing my Rails controllers using RSpec. In one controller, I have a model that uses transactions, so that it will not be saved unless another nested model (whose data is filled in using fields_for) is also saved correctly. The tests hit a snag when they reach the transaction. Some debugging output proves that the model is valid and ready to save. However, upon entering the transaction block, the model does not save. Even stranger, the code never reaches the else clause of "if model.save" (It does, however, enter the transaction block). I can only assume this is a problem with my testing a transactional model. Any ideas/hints/solutions?

    Read the article

  • RSpec leaves record in test database

    - by DMiller
    Whenever I run a user test, RSpec leaves the Fabricated user in the test database after the test has completed, which is messing up my other tests. I will do a rake db:test:prepare, but when I run my tests again, the record is recreated in my database. I have no idea why this is happening. It only happens with user objects. In my spec_helper file I even have: config.use_transactional_fixtures = true Here is an example test that creates a record: it "creates a password reset token for the user" do alice = Fabricate(:user) post :create, email: alice.email expect(assigns(alice.password_reset_token)).to_not eq(nil) end Fabricator: Fabricator(:user) do email { Faker::Internet.email } password 'password' name { Faker::Name.name } end Could this have anything to do with my users model?

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >