[英]Ruby, Rspec, and requiring test contoller
我是Ruby(RoR)和rspec的新手。
我在project/app/controllers/books_controller.rb
有基本的項目支架和控制器
然后我試圖在project/spec/controllers/book_spec.rb
設置rspec
還存在book_spec.rb
所需的project/spec/spec_helper.rb
。 該文件是我嘗試包含books_controller.rb
文件的位置。
如何包含books_controller.rb
文件,使book_spec.rb
具有Book對象,因此在我運行rspec時可以工作嗎?
目前,我已經嘗試過諸如require_relative "../app/controllers/books_controller"
類的東西,但是它不起作用。 它給我一個錯誤,如:
uninitialized constant ApplicationController ... in 'require_relative'
任何幫助都會很棒。
您無需手動包括控制器,只需遵循rspec命名約定並描述所需的對象,一切都會正常進行。
您的控制器規格應命名為books_controller_spec.rb
。 該名稱與控制器的名稱_spec
並在末尾添加_spec
。 這不是一個硬性要求,而是一個強烈建議的約定,因為book_spec.rb
實際上暗示着Book
模型規范而不是控制器。
關鍵部分是在您的規范中描述了所需的對象,例如
describe BooksController do
#...
end
您可能還想看看rspec-rails gem,它為spec提供了一些有用的生成器 。 理想情況下,您需要與Rails集成,因此,無論何時生成新模型或控制器,都會為您創建新規范。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.