spec is_valid не работает - PullRequest
       0

spec is_valid не работает

1 голос
/ 23 мая 2011

У меня есть модель ActiveRecord:

class Hotlink < ActiveRecord::Base

  validates_presence_of :link

end

Что я тестирую с:

require 'spec_helper'

describe Hotlink do

  it "should require a name" do
    Hotlink.new.should_not be_valid
  end

  it "should require a name 2" do 
    link1 = Hotlink.new
    link1.link = nil
    link1.should_not be_valid
  end 


  it "should require a name 3" do 
    link2 = Hotlink.new
    link2.link = nil
    link2.save
    link2.should_not be_valid
    link2.valid?.should be_false
  end 

end

Все эти тесты не пройдены. Я не совсем понимаю? Разве они не проходят?

Они терпят неудачу с: ожидаемый действительный? вернуть ложь, получил истину

В средах / test.r b я отключил классификацию кэша, но не повезло.

Редактировать: следующие работы. Я теперь еще больше сбит с толку:

Hotlink.new().valid?.should != true

Редактировать: Источник найденной проблемы:

У меня есть спецификация контроллера, которая при удалении заставит спецификации модели пройти. Почему это?

require File.dirname(__FILE__) + 'spec_helper'

describe HotlinksController do


  before :each do
   @current_user = mock_model(User, :id => 1)
   controller.stub!(:current_user).and_return(@current_user)
   controller.stub!(:login_required).and_return(:true)
  end


  fixtures :all
  render_views


  it "create action should redirect when model is valid" do
    Hotlink.any_instance.stubs(:valid?).returns(true)
    post :create
    response.should redirect_to(root_url)
  end


end

1 Ответ

0 голосов
/ 23 мая 2011

Я указываю пальцем на эту строку:

Hotlink.any_instance.stubs(:valid?).returns(true)

Мне бы хотелось правильное исправление, но когда я натолкнулся на что-то подобное недавно, я нашел способ проверить желаемое поведениебез проблемной насмешки.

В этом случае вам может сойтись с чем-то вроде (не проверено):

hotlink = Hotlink.new
Hotlink.stub(:new).and_return(hotlink)
hotlink.stub(:valid?).and_return(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...