Problem
When trying to use the minitest assert_routing with the first parameter representing the path as a hash that includes both the path and the method, and run the tests rails complains about SyntaxErrors.
When trying to use it as suggested in the ‘Rails 4 Test Prescriptions’ Pragmatic Programmers book (p. 172 – Minitest and Routing) which is:
assert_routing({ path: "/projects", method: "post" }, controller: "projects", action: "create")
the error is:
SyntaxError: /.../test/controllers/projects_controller_test.rb:12: syntax error, unexpected ',', expecting ')' ... '/projects', method: 'post' }, controller: 'projects', act...
even when trying to have the second parameter as a hash:
assert_routing({ path: "/projects", method: "post" }, { controller: "projects", action: "create" })
the error is similar:
SyntaxError: /.../test/controllers/projects_controller_test.rb:12: syntax error, unexpected ',', expecting ')' ... '/projects', method: 'post' }, { controller: 'projects', ac...
Solution
Seems that you need to pass the parameters enclosed in brackets, so the following would work:
assert_routing ({ path: '/projects', method: 'post' }), ({ controller: 'projects', action: 'create' })