I have this controller: class UsersController < ApplicationController def enable_password_change respond_to do |format| format.js { render :layout => false } end endend And the following test: test "should render js to show the change password form" do sign_in_user request_javascript get :enable_password_change assert_template :enable_password_change assert_response :okend And the helper method to set the request headers: def request_javascript @request.headers["Accepts"] = "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"end However my test reports: Finished tests in 0.942294s, 7.4287 tests/s, 15.9186 assertions/s. 1) Error:UsersControllerTest#test_should_render_js_to_show_the_change_password_for:ActionController::UnknownFormat: ActionController::UnknownFormat app/controllers/users_controller.rb:9:in `enable_password_change'' test/controllers/users_controller_test.rb:14:in `block in <class:UsersControllerTest>'' 7 tests, 15 assertions, 0 failures, 1 errors, 0 skips What am I doing wrong here? P.S. Also posted on http://stackoverflow.com/questions/17870266/testing-if-a-controller-renders-a-js-template -- 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 rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/1ad0d9f3-3d46-45f8-ba8c-83ae2f334d55%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
I found the the xml_http_request or alias xhr for that test "should render js to show the change password form" do sign_in_user xhr :get, :enable_password_change assert_template :enable_password_change assert_response :ok assert assigns(:merchant_user)end http://jpereira.eu On Friday, July 26, 2013 1:10:30 AM UTC+2, João Pereira wrote:> > I have this controller: > > class UsersController < ApplicationController > def enable_password_change > respond_to do |format| > format.js { > render :layout => false > } > end > endend > > And the following test: > > test "should render js to show the change password form" do > sign_in_user > request_javascript > get :enable_password_change > assert_template :enable_password_change > assert_response :okend > > And the helper method to set the request headers: > > def request_javascript > @request.headers["Accepts"] = "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"end > > However my test reports: > > Finished tests in 0.942294s, 7.4287 tests/s, 15.9186 assertions/s. > 1) Error:UsersControllerTest#test_should_render_js_to_show_the_change_password_for:ActionController::UnknownFormat: ActionController::UnknownFormat > app/controllers/users_controller.rb:9:in `enable_password_change'' > test/controllers/users_controller_test.rb:14:in `block in <class:UsersControllerTest>'' > > 7 tests, 15 assertions, 0 failures, 1 errors, 0 skips > > What am I doing wrong here? > > P.S. Also posted on > http://stackoverflow.com/questions/17870266/testing-if-a-controller-renders-a-js-template >-- 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 rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/93a5853a-5434-4545-88c7-504506bb3214%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
andreo-FdlSlcb4kYpknbxzx/v8hQ@public.gmane.org
2013-Aug-02 08:49 UTC
Re: Testing if a controller renders a JS Template
Joao, I am not sure you getting testing right! everytime you find something like this that looks hard to test, maybe you should rethink your tests. I Would for example on controller testing, which is functional, be more worried to test, if the function did what it was supposed to and on the features/request tests check if my applications is working correctly with js. I am not sure for this example but just a little tip from what I have seen in testing before! all the best, Andre On Friday, 2 August 2013 00:47:59 UTC+2, João Pereira wrote:> > > I found the the xml_http_request or alias xhr for that > > test "should render js to show the change password form" do > sign_in_user > > xhr :get, :enable_password_change > > assert_template :enable_password_change > assert_response :ok > assert assigns(:merchant_user)end > > > > http://jpereira.eu > > On Friday, July 26, 2013 1:10:30 AM UTC+2, João Pereira wrote: >> >> I have this controller: >> >> class UsersController < ApplicationController >> def enable_password_change >> respond_to do |format| >> format.js { >> render :layout => false >> } >> end >> endend >> >> And the following test: >> >> test "should render js to show the change password form" do >> sign_in_user >> request_javascript >> get :enable_password_change >> assert_template :enable_password_change >> assert_response :okend >> >> And the helper method to set the request headers: >> >> def request_javascript >> @request.headers["Accepts"] = "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"end >> >> However my test reports: >> >> Finished tests in 0.942294s, 7.4287 tests/s, 15.9186 assertions/s. >> 1) Error:UsersControllerTest#test_should_render_js_to_show_the_change_password_for:ActionController::UnknownFormat: ActionController::UnknownFormat >> app/controllers/users_controller.rb:9:in `enable_password_change'' >> test/controllers/users_controller_test.rb:14:in `block in <class:UsersControllerTest>'' >> >> 7 tests, 15 assertions, 0 failures, 1 errors, 0 skips >> >> What am I doing wrong here? >> >> P.S. Also posted on >> http://stackoverflow.com/questions/17870266/testing-if-a-controller-renders-a-js-template >> >-- 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 rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/a16205c4-b5fd-441e-bac5-f9f7690712dd%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.