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' })