Testing if a controller renders a JS Template

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:inblock 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

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

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