2 xu của tôi:
Sử dụng Bít tết thay vì Dưa chuột. Nó RSpec ở cốt lõi của nó, nó là đơn giản và nó thực hiện công việc.
https://github.com/cavalle/steak
Capybara cho phép bạn sử dụng các trình điều khiển khác nhau. Một số trình điều khiển hỗ trợ javascript, chạy với một trình duyệt, nhanh hơn, chậm hơn, vv Sử dụng trình điều khiển tốt nhất cho spec bạn đang thử nghiệm sử dụng Swinger:
https://github.com/jeffkreeftmeijer/swinger
tôi sử dụng nĩa riêng của tôi về Akephalos - một tài xế - mà là nhanh, hỗ trợ javascript, UTF-8 (đó là những gì mà ngã ba của tôi thêm) và không cần trình duyệt bên ngoài.
https://github.com/Nerian/akephalos2
Một thực hành tốt cho RSpec là sử dụng 'Bối cảnh'. Hãy hỏi tôi nếu bạn cần làm rõ. Ngoài ra, hãy lưu ý phương thức cho phương thức. Nó trả về bất kỳ khối nào trả về. Nó rất hữu ích cho việc khai báo giả một đối tượng bên trong và sử dụng chúng trên các mẫu. .
feature "Course" do
let(:school) {School.make!}
context "Loged in" do
before(:each) do
switch_to_subdomain(school)
end
context "In the new course form" do
before(:each) do
click_link("Courses")
click_link("New course")
end
scenario "New course" do
end
scenario "A Course without name should not be accepted" do
end
scenario "A new course should not be created if there is another one with the same name in the same school" do
end
end
end
end
Ngoài ra, cuốn sách: Các RSpec Book, các lập trình viên Pragmatic là một nguồn lực rất tốt để bắt đầu bản thân về các khái niệm cốt lõi đằng sau RSpec, Capybara, dưa chuột và tất cả Driven Development Hành vi điều nhanh nhẹn này :)
Chỉnh sửa:
Ngoài ra, tôi sử dụng Machinist2 cho đồ đạc. https://github.com/notahat/machinist
Hoạt động tốt. Tốt hơn cô gái nhà máy.
Ngoài ra còn có Nhà chế tạo, có trang web tuyệt vời và DSL rất có thể sử dụng.
https://github.com/paulelliott/fabrication
Bạn có thể sử dụng Machinist với giả mạo nhằm tạo dữ liệu thông minh.
https://github.com/sevenwire/forgery
School.blueprint do
name { "Pablo de olavide"}
end
Student.blueprint do
first_name { Forgery::Name.first_name}
last_name { Forgery::Name.last_name }
school { School.make! }
end
Bạn có thể kết hợp này với một nhiệm vụ Thor để cư bạn cơ sở dữ liệu phát triển, để xem các ứng dụng như là người dùng cuối cùng sẽ nhìn thấy nó.
def populate
require File.expand_path('config/environment.rb')
require File.expand_path('spec/support/blueprints.rb')
drop
puts "populating database"
1.times do |num|
school = School.make!
50.times do
Student.make!(:school => school)
end
5.times do
Course.make!(:school => school)
Professor.make!(:school => school)
end
end
end
Các tài liệu của RSpec 2 có rất nhiều ví dụ:
http://relishapp.com/rspec
Ngoài ra, đây bài viết cung cấp cho nhiều lời khuyên khác:
http://eggsonbread.com/2010/03/28/my-rspec-best-practices-and-tips/
Một bài với tư vấn rất tốt:
http://flux88.com/2011/05/dry-up-your-rspec-files-with-subject-let-blocks/
Tối ưu hóa thời gian thực hiện các xét nghiệm:
http://blog.leshill.org/blog/2011/10/23/fast-specs.html
http://jeffkreeftmeijer.com/2011/spec-helpers-bundler-setup-faster-rails-test-suites/
Cảm ơn bó cho đầu vào! Tôi hiện đang sử dụng Factory Girl nhưng tôi nghĩ tôi có thể thử Machinist trong tương lai gần. – polarblau
... Tôi đã đọc về Steak và nó chắc chắn có vẻ gần gũi hơn với "phong cách" của riêng tôi (hä?), Nhưng tôi muốn sử dụng Cucumber một lần trên một dự án đầy đủ để có được một ấn tượng tốt hơn. Tôi cũng đã nghĩ đến việc mua cuốn sách RSpec, nhờ vào gợi ý, tôi nghĩ tôi có thể chỉ cần đi mua nó! Và tôi chắc chắn sẽ thử "ngữ cảnh". Cảm ơn một lần nữa. - Tuy nhiên bất cứ ai với một số dự án mở tôi có thể có một peek tại? – polarblau
Bạn thấy đấy, một nơi thực sự tốt để xem thông số RSpec2 được thực hiện bởi các bậc thầy là kho lưu trữ git RSpec2 chính nó :) Dưa chuột: https://github.com/dchelimsky/rspec/tree/master/features và RSpec; https://github.com/dchelimsky/rspec/tree/master/spec – Nerian