ฉันใช้คอนโซลรางในสภาพแวดล้อมการพัฒนาและฉันต้องการใช้โรงงาน ฉันจะเข้าถึงได้อย่างไร?
ฉันได้ลองแล้วrequire "FactoryGirl"
ซึ่งผลตอบแทน
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
ฉันใช้คอนโซลรางในสภาพแวดล้อมการพัฒนาและฉันต้องการใช้โรงงาน ฉันจะเข้าถึงได้อย่างไร?
ฉันได้ลองแล้วrequire "FactoryGirl"
ซึ่งผลตอบแทน
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails c
จากนั้นทำrequire 'factory_bot'
คำตอบ:
เพื่อแก้ปัญหานี้ให้แน่ใจว่าอัญมณีบอทโรงงานถูกระบุไว้ใน Gemfile ของคุณคล้ายกับสิ่งนี้
group :development, :test do
gem 'factory_bot_rails'
end
แล้วbundle install
.
สิ่งนี้ควรทำให้คลาส FactoryBot พร้อมใช้งานในคอนโซลการพัฒนา
หวังว่านี่จะช่วยได้
gem 'factory_girl_rails', :require => false
ทำให้เกิดข้อผิดพลาดสำหรับทุกคนที่พยายามตั้งค่าสภาพแวดล้อมการพัฒนาตั้งแต่เริ่มต้นโปรดระวัง
rails console test
จะช่วยให้คุณสร้างคอนโซลในสภาพแวดล้อมการทดสอบดังนั้นคุณไม่จำเป็นต้องอัปเดต Gemfile เพื่อใช้แพ็คเกจทดสอบในสภาพแวดล้อมการพัฒนา
ฉันทำวิธีต่อไปนี้:
เริ่มคอนโซลรางในสภาพแวดล้อมการทดสอบในโหมดแซนด์บ็อกซ์
rails console -e test --sandbox
คุณต้องการสิ่งนี้ด้วยเหตุผลสองประการ:
จากนั้นในคอนโซล:
ต้องการ FactoryBot (ถูกเรียกว่า FactoryGirl):
require 'factory_bot'
โหลดคำจำกัดความของโรงงาน:
FactoryBot.find_definitions
รวมวิธีการ FactoryBot เพื่อหลีกเลี่ยงการนำหน้าการโทรไปยัง FB ทั้งหมดด้วยFactoryBot
( create
แทนFactoryBot.create
):
include FactoryBot::Syntax::Methods
PS สำหรับการประดิษฐ์อัญมณีคุณสามารถโหลดคำจำกัดความในคอนโซลรางด้วย:
Fabrication.manager.load_definitions
นอกจากนี้require 'faker'
หากคุณใช้มัน
require 'ffaker'
อย่างไร
fixture_file_upload
ปัญหาเกี่ยวกับวิธีการที่ไม่ได้กำหนดซึ่งเกิดจากการไม่มีActionDispatch::TestProcess
โมดูลดังนั้นคุณอาจพิจารณารวมไว้ด้วย
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
คุณต้องrequire 'factory_bot_rails'
ซึ่งเป็นอัญมณีจริงที่ Rails ใช้ อัญมณีนั้นจะรวมไลบรารี Factory Bot ไว้ให้FactoryBot
พร้อมใช้งาน
คุณสามารถทำได้หรืออัปเดต Gemfile เพื่อต้องการใช้เมื่อเริ่มต้นเช่นเดียวกับคำตอบของเนื้อแกะ
require 'faker'
ด้วย