21

Tôi đến làm việc cho một công ty gần đây đã làm việc trên một dự án đường ray cụ thể trong một thời gian. Bỏ qua giữa quá trình phát triển, tôi bắt đầu quay lại và viết các bài kiểm tra cho mã hiện tại cũng như mã đang được sản xuất. Thử nghiệm các ứng dụng đường ray 4 là dễ dàng đủ, nhưng một khi tôi đã đến thử nghiệm động cơ, tôi nhấn một khối tinh thần. Sau khi thực hiện thẩm định, tôi thấy rằng hầu hết mọi người có cách tiếp cận như thế này (http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl), nhưng chủ đề phổ biến tôi thấy trong tất cả các câu trả lời là mọi người đang xây dựng các ứng dụng này từ đầu và do đó đã có ứng dụng giả tạo cho chúng tự động. Tôi không có lợi ích của việc có thể tạo ra mọi thứ từ đầu, và phải làm việc với những gì tôi đã được đưa ra, vì vậy những gì tôi muốn biết là nếu có một cách để hồi sinh tạo ra chỉ ứng dụng giả. Có một cái gì đó đơn giản tôi có thể gõ vào giao diện điều khiển và có nó tạo ra cho tôi? Hoặc là có một con đường dài hơn, hơi ít đẹp hơn? Hay một chiến lược khác sẽ hoàn toàn tốt hơn?Cách tạo một ứng dụng giả bên trong một động cơ ray hiện có

+0

bạn có thể đặt trong 'spec/dummy' bất kỳ ứng dụng nào, đây chỉ là điểm gắn kết cho bạn, chỉ cần tạo' đường dẫn mới test_app' và sao chép 'test_app' vào thư mục giả. –

+0

Tại sao bạn cần ứng dụng giả? bạn không thể kiểm tra động cơ bằng ứng dụng chính? – Jwan622

Trả lời

32

Cho rằng ứng dụng giả không phải được gắn liền với đá quý mẹ ngoại trừ đối với một số tên mơ hồ, rằng thể làm điều đó:

cd some_path_where_your_engine_IS_NOT 
rails plugin new YOUR_ENGINE_NAME --mountable --dummy-path=spec/dummy --skip-test-unit 
mv YOUR_ENGINE_NAME/spec/dummy /real/path/to/YOUR_ENGINE_NAME/spec 
rm -rf YOUR_ENGINE_NAME # cleanup useless cruft 

Ngoài ra, bạn có thể quan tâm đến this answer để tạo ra ứng dụng có cùng phiên bản đường ray chính xác.

+0

Chỉ định phiên bản Rails sử dụng '_VERSION_' làm tùy chọn đầu tiên cho lệnh' rails'. Ví dụ: để sử dụng Rails 5.0.1: 'rails _5.0.1_ plugin mới YOUR_ENGINE_NAME --mountable --dummy-path = spec/dummy --skip-test-unit' –

Các vấn đề liên quan