2016-02-07 96 views
1

我工作的邁克爾·哈特爾的回報率教程第3.2.1和我使用的命令生成靜態頁面控制器:Rails教程(M. Hartl)第3章,`rails generate`後缺少`static_pages_controller_test.rb`文件夾?

$ rails generate controller StaticPages home help 

但這樣做之後,我不能看的見的test/controllers/static_pages_controller_test.rb文件等中產生在書中(見第十行):

$ rails generate controller StaticPages home help 
     create app/controllers/static_pages_controller.rb 
     route get 'static_pages/help' 
     route get 'static_pages/home' 
     invoke erb 
     create app/views/static_pages 
     create app/views/static_pages/home.html.erb 
     create app/views/static_pages/help.html.erb 
     invoke test_unit 
     create test/controllers/static_pages_controller_test.rb 
     invoke helper 
     create app/helpers/static_pages_helper.rb 
     invoke test_unit 
     create  test/helpers/static_pages_helper_test.rb 
     invoke assets 
     invoke coffee 
     create  app/assets/javascripts/static_pages.js.coffee 
     invoke scss 
     create  app/assets/stylesheets/static_pages.css.scss 

這裏是什麼樣子,當我運行它,如:

screenshot

我的文件夾也完全是空的,無法運行任何測試。

+0

如果您發現任何特別有用的答案,請確保通過單擊灰色勾將其選爲「已接受」,以使其變爲綠色。 –

回答

0

因爲您使用rspec進行測試,並且生成器命令創建與rspec套件相關的文件和文件夾。而不是創造的:

測試/控制器/ static_pages_controller_test.rb

它創建:

規格/控制器/ static_pages_controller_spec.rb

所以,如果你想按照Michael Hartl的RoR教程,您必須將您的測試方法更改爲minitest。

1

我想你可能混合了Michael Hartl的Ruby On Rails教程的版本。

第3版使用Minitest代替RSpec。然而,你的應用程序似乎設置爲使用RSpec,這是第二版中使用的不同測試框架。

如果你想知道爲什麼它產生的RSpec規範,而不是測試,那麼它很有可能是因爲你跑:

rails generate rspec:install 

從而改變發電機產生的規格來代替。

糾正這種最簡單的方法是刪除當前sample_app目錄,並從第3章的從頭開始,並確保您只使用當前版本:

https://www.railstutorial.org/book/static_pages

還有其他的方法,但如果你重新開始,可能會更容易避免其他事故。

+0

你說得對。謝謝! –

相關問題