I''ve tried to run scaffold-generated tests and the results is not what I would have expected. Basically all tests fail because the framework is trying to delete from the table and ignoring the table alias. I have two problems with that. 1. So I understand now that by default the test framework is trying to load the test fixtures and before doing so it deletes the old ones. But I don''t want to delete anything from my database. How do I prevent the test framework from trying to delete records? 2. Why is the table alias being ignored? When executed as a rails application the table alias is resolved correctly. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
This is what my auto-generated model and controller tests look like,
both of them attempting to delete from a non-aliased (and non-existent)
users table before they do anything in their own code.
unit\user_test.rb
require ''test_helper''
class UserTest < ActiveSupport::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
end
end
functional\users_controller_test.rb
require ''test_helper''
class UsersControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:users)
end
test "should get new" do
get :new
assert_response :success
end
test "should create user" do
assert_difference(''User.count'') do
post :create, :user => { }
end
assert_redirected_to user_path(assigns(:user))
end
test "should show user" do
get :show, :id => users(:one).to_param
assert_response :success
end
test "should get edit" do
get :edit, :id => users(:one).to_param
assert_response :success
end
test "should update user" do
put :update, :id => users(:one).to_param, :user => { }
assert_redirected_to user_path(assigns(:user))
end
test "should destroy user" do
assert_difference(''User.count'', -1) do
delete :destroy, :id => users(:one).to_param
end
assert_redirected_to users_path
end
end
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
I can''t say I really know what I''m doing here but when I
derive from a
base unit testcase rather ActiveSupport testcase I seem to get what I
want. Not sure what I''m losing by not deriving from ActiveSupport
testcase.
require ''test_helper''
class UserTest < Test::Unit::TestCase
# Replace this with your real tests.
def the_truth
assert true
end
end
Tomasz Romanowski wrote:> This is what my auto-generated model and controller tests look like,
> both of them attempting to delete from a non-aliased (and non-existent)
> users table before they do anything in their own code.
>
>
> unit\user_test.rb
> require ''test_helper''
>
> class UserTest < ActiveSupport::TestCase
> # Replace this with your real tests.
> test "the truth" do
> assert true
> end
> end
>
>
>
> functional\users_controller_test.rb
> require ''test_helper''
>
> class UsersControllerTest < ActionController::TestCase
> test "should get index" do
> get :index
> assert_response :success
> assert_not_nil assigns(:users)
> end
>
> test "should get new" do
> get :new
> assert_response :success
> end
>
> test "should create user" do
> assert_difference(''User.count'') do
> post :create, :user => { }
> end
>
> assert_redirected_to user_path(assigns(:user))
> end
>
> test "should show user" do
> get :show, :id => users(:one).to_param
> assert_response :success
> end
>
> test "should get edit" do
> get :edit, :id => users(:one).to_param
> assert_response :success
> end
>
> test "should update user" do
> put :update, :id => users(:one).to_param, :user => { }
> assert_redirected_to user_path(assigns(:user))
> end
>
> test "should destroy user" do
> assert_difference(''User.count'', -1) do
> delete :destroy, :id => users(:one).to_param
> end
>
> assert_redirected_to users_path
> end
> end
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On Aug 26, 5:26 pm, Tomasz Romanowski <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> I can''t say I really know what I''m doing here but when I derive from a > base unit testcase rather ActiveSupport testcase I seem to get what I > want. Not sure what I''m losing by not deriving from ActiveSupport > testcase.ActiveSupport::TestCase is what gets you the activerecord fixture stuff (eg the fixture accessor methods). It''s also the thing that loads fixtures. ActionController::TestCase (which derives from ActiveSupport::TestCase) handles the boiler plate of setting up the test request for you, and creates the get/put/... methods you use in functional tests. I''m not entirely sure what you mean by the table alias being ignored, but if you mean that the fixtures ignore the set_table_name in your models that''s because fixtures don''t work that way - the fixture file name should be the name of the table, not the name of the model Fred> > require ''test_helper'' > > class UserTest < Test::Unit::TestCase > # Replace this with your real tests. > def the_truth > assert true > end > end > > > > > > Tomasz Romanowski wrote: > > This is what my auto-generated model and controller tests look like, > > both of them attempting to delete from a non-aliased (and non-existent) > > users table before they do anything in their own code. > > > unit\user_test.rb > > require ''test_helper'' > > > class UserTest < ActiveSupport::TestCase > > # Replace this with your real tests. > > test "the truth" do > > assert true > > end > > end > > > functional\users_controller_test.rb > > require ''test_helper'' > > > class UsersControllerTest < ActionController::TestCase > > test "should get index" do > > get :index > > assert_response :success > > assert_not_nil assigns(:users) > > end > > > test "should get new" do > > get :new > > assert_response :success > > end > > > test "should create user" do > > assert_difference(''User.count'') do > > post :create, :user => { } > > end > > > assert_redirected_to user_path(assigns(:user)) > > end > > > test "should show user" do > > get :show, :id => users(:one).to_param > > assert_response :success > > end > > > test "should get edit" do > > get :edit, :id => users(:one).to_param > > assert_response :success > > end > > > test "should update user" do > > put :update, :id => users(:one).to_param, :user => { } > > assert_redirected_to user_path(assigns(:user)) > > end > > > test "should destroy user" do > > assert_difference(''User.count'', -1) do > > delete :destroy, :id => users(:one).to_param > > end > > > assert_redirected_to users_path > > end > > end > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks. Does Rspec have the same support as ActiveSupport and ActionController testcases? I''m considering using Rspec since it comes with a server that loads the rails environment only once saving the rails startup time each time I run the test. I''m using windows and needless to say the startup time is ridiculously slow. I''m also going to try andLinux but would like to keep Rspec as an option. Frederick Cheung wrote:> On Aug 26, 5:26�pm, Tomasz Romanowski <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> I can''t say I really know what I''m doing here but when I derive from a >> base unit testcase rather ActiveSupport testcase I seem to get what I >> want. Not sure what I''m losing by not deriving from ActiveSupport >> testcase. > > ActiveSupport::TestCase is what gets you the activerecord fixture > stuff (eg the fixture accessor methods). It''s also the thing that > loads fixtures. ActionController::TestCase (which derives from > ActiveSupport::TestCase) handles the boiler plate of setting up the > test request for you, and creates the get/put/... methods you use in > functional tests. > > I''m not entirely sure what you mean by the table alias being ignored, > but if you mean that the fixtures ignore the set_table_name in your > models that''s because fixtures don''t work that way - the fixture file > name should be the name of the table, not the name of the model > > Fred-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung wrote:> On Aug 26, 5:26�pm, Tomasz Romanowski <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> I can''t say I really know what I''m doing here but when I derive from a >> base unit testcase rather ActiveSupport testcase I seem to get what I >> want. Not sure what I''m losing by not deriving from ActiveSupport >> testcase. > > ActiveSupport::TestCase is what gets you the activerecord fixture > stuff (eg the fixture accessor methods). It''s also the thing that > loads fixtures. ActionController::TestCase (which derives from > ActiveSupport::TestCase) handles the boiler plate of setting up the > test request for you, and creates the get/put/... methods you use in > functional tests. > > I''m not entirely sure what you mean by the table alias being ignored, > but if you mean that the fixtures ignore the set_table_name in your > models that''s because fixtures don''t work that way - the fixture file > name should be the name of the table, not the name of the model...which is another of the many, many reasons not to ever use fixtures. Use factories instead.> > FredBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.