我一直在研究Michael Hartl的Ruby on Rails教程。我在代码清单8.10中,我为新创建的登录运行集成测试。当我运行测试时,我收到1错误,内容如下:
UsersLoginTest#test_login_with_invalid_information:
ActionController::RoutingError: uninitialized constant SessonsController
test/integration/users_login_test.rb:8:in `block in class:UsersLoginTest>'
1 runs, 1 assertions, 0 failures, 1 errors, 0 skips
我有什么遗失的东西吗?我认为这显然是一个拼写错误的文件" SessonsController"而不是"会话控制器"但我无法找到拼写错误的文件。我还检查了文件中的ln8" test / integration / users_login_test.rb"并没有发现错误。
如果有人能帮我解决这个问题,我会非常感激。
以下是github repo的链接:sample_app branch login-logout
以下是教程页面的链接:Rails Tutorial
答案 0 :(得分:0)
在test/integration/users_login_test.rb:8
中,您需要将SessonsController
替换为实际命名的控制器(请参阅拼写错误?)
通常,您需要确保文件的名称与它们包含的类/模块的名称相同。
例如,如果我有一个SessionController
课程,但它已保存在foobar_controller.rb
文件中,则无法加载。名称必须完全匹配。即使是额外的s
也可以将其抛弃。 SessionController
与SessionsController
不同。
无论如何,学习调试是一项重要的技能,通过Hartl的教程将教你。你马上就能掌握它。