我正在研究Michael Hartl的RoR教程第3.2.1节,并且我使用以下命令生成静态页面控制器:
$ 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
这是我运行时的样子:
我的文件夹也是完全空的,无法运行任何测试。
答案 0 :(得分: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
还有其他方法,但如果你有一个新的开始,可能更容易避免其他不幸事件。
答案 1 :(得分:0)
因为您使用rspec进行测试,而生成器命令会创建与rspec suite相关的文件和文件夹。而不是创建:
测试/控制器/ static_pages_controller_test.rb
它创建:
规格/控制器/ static_pages_controller_spec.rb
所以,如果您想关注Michael Hartl的RoR教程,您必须将测试方法更改为最小的。