Tôi có một ứng dụng rails3 có một số nhà quan sát. Tôi không thể cho cuộc sống của tôi tìm ra cách để tắt chúng cho các bài kiểm tra rspec của tôi!làm thế nào để chạy rspec mà không có người quan sát nào trong đường ray 3?
12
A
Trả lời
5
Hai tùy chọn có thể là:
- No peeping toms
- Thêm dòng sau vào môi trường test.rb của bạn:
config.active_record.observers = []
30
no_peeping_toms chí cảnh báo sản lượng deprecation khi được sử dụng với Rails 3.1+. Hiện tại, bạn có 7 pull requests mở để xóa các cảnh báo không dùng nữa, tuy nhiên gem is not necessary with Rails 3.1+. Rails 3.1 được thêm vào ActiveModel (và do đó ActiveRecord) khả năng bật và disable người quan sát.
Bạn có thể đặt dòng sau trong spec_helper để tắt tất cả các quan sát viên trên tất cả các mô hình ActiveRecord-hậu duệ:
# spec/spec_helper.rb
...
RSpec.configure do |config|
...
config.before do
...
ActiveRecord::Base.observers.disable :all # <-- Turn 'em all off!
end
end
Bạn có thể bật lại trên một cách chọn lọc để kiểm tra hành vi của họ bằng cách gói hành động trong thông số kỹ thuật của bạn với enable phương pháp.
# spec/models/foo_observer_spec.rb
describe FooObserver do
subject { FooObserver.instance }
it 'notices when new Foos are created' do
subject.should_receive(:after_create)
Foo.observers.enable :foo_observer do # <- Turn FooObserver on
Foo.create('my new foo')
end # <- ... and then back off
end
end
Các vấn đề liên quan
- 1. Các nhà quan sát đường ray - Khi nào và khi nào không sử dụng các nhà quan sát trong Rails
- 2. Có cách nào để tạo ra một giàn giáo đường ray mà không có quan điểm?
- 3. Người gửi thư không gửi thư, có đường ray 3
- 4. Làm thế nào để thêm thuộc tính lớp để chọn thẻ trong đường ray 3
- 5. Làm thế nào để bạn kiểm tra các nhà quan sát với rSpec trong ứng dụng Ruby on Rails?
- 6. default_scope trong đường ray 3
- 7. Giám sát nhiều ứng dụng đường ray
- 8. Không thể chạy cronjob sử dụng bất cứ khi nào trong đường ray 3
- 9. Observe_field trong đường ray 3
- 10. Làm thế nào tôi có thể chạy Sinatra bên trong ứng dụng đường ray hiện có?
- 11. Làm thế nào để kiểm tra đường ray ETag caching?
- 12. Làm thế nào để lọc Quan sát Collection Lớp Collection
- 13. Làm thế nào để hiển thị Không có Dữ liệu khi mảng quan sát được trống?
- 14. làm thế nào để thiết lập múi giờ của ẤN ĐỘ trong đường ray 3
- 15. "đường ray tạo rspec: cài đặt" có vẻ là không
- 16. Đường ray 3 URL không có tên bộ điều khiển
- 17. Làm thế nào để gửi lại js.haml trong đường ray
- 18. Rails 3: Làm thế nào để xác định hành động after_commit trong các nhà quan sát? (tạo/cập nhật/hủy)
- 19. Kết hợp YUI 3 trong đường ray
- 20. Chạy thử nghiệm đường ray mà không làm mất cơ sở dữ liệu thử nghiệm
- 21. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 22. Làm thế nào tôi có thể sử dụng đường ray helper "distance_of_time_in_words" trong ruby cũ đồng bằng (không đường ray)
- 23. Có thể thêm người quan sát vào tableView.contentOffset không?
- 24. Làm thế nào để làm cho đường ray f.select chọn
- 25. Làm cách nào để xác định trình trợ giúp định tuyến riêng trong đường ray 3?
- 26. thực hiện một đường ray before_filter trong ruby mà không có đường ray
- 27. Làm thế nào để kiểm tra Mongoid :: Observer với rspec
- 28. Làm cách nào để xác thực ngày trong đường ray?
- 29. Làm thế nào để chạy makecert.exe mà không cần GUI?
- 30. cách autobuild một đối tượng activerecord đa hình có liên quan trong đường ray 3
Cảm ơn bạn đã trỏ đến 'Foo.observers.enable' – iRonin
Bạn được chào đón! –