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.