В RSpec есть такая замечательная штука, как мок-объекты (mocks). В двух словах: мок-объект имитирует поведение объекта, который используется тестируемыми методами. Сразу простой пример:
describe UserHelper
it 'should generate correct link to user profile in user_link' do
@user = mock('User')
@user.stub!(:id, 10)
@user.stub!(:new_record?, false)
@user.stub!(:preferred_name, 'Dmytro S.')
@user.stub!(:full_name, 'Dmytro Shteflyuk')
user_link(@user).should == link_to('Dmytro S.', user_url(:id => 10), :title => 'Dmytro Shteflyuk')
end
end
it 'should generate correct link to user profile in user_link' do
@user = mock('User')
@user.stub!(:id, 10)
@user.stub!(:new_record?, false)
@user.stub!(:preferred_name, 'Dmytro S.')
@user.stub!(:full_name, 'Dmytro Shteflyuk')
user_link(@user).should == link_to('Dmytro S.', user_url(:id => 10), :title => 'Dmytro Shteflyuk')
end
end
Русский
English