Tôi đang sử dụng đá quý strong_parameters
trong bộ điều khiển của mình, nhưng tôi đang gặp khó khăn trong việc hiểu cách thử nghiệm.RSpec - Kiểm tra thông số mạnh
Dưới đây là một ví dụ về thiết lập của tôi
class UserController < ActionController::Base
include ActiveModel::ForbiddenAttributesProtection
def create
@user = User.new(user_params)
if @user.save
...
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :username, :email)
end
end
Tôi muốn thử nghiệm các user_params
phương pháp để đảm bảo rằng nó được lọc một cách chính xác ra cặp khóa/giá trị độc hại, nhưng không thể tìm ra cách để làm điều đó. Có một ai đã từng đi qua cái này?
chính sách kiểm tra của chúng tôi là viết một cách rõ ràng các xét nghiệm cho tất cả các chức năng, cho phép chúng ta có khả năng chuyển đổi đá quý/cuộn của chúng tôi sau này và vẫn biết rằng hệ thống đang hoạt động. – Bryce
Bạn cũng có thể thử nghiệm mã của mình tích hợp với strong_parameters đang hoạt động bình thường. Tôi có các trường có thể ghi/không ghi được tùy thuộc vào vai trò/quyền của người dùng, vì vậy tôi cần kiểm tra xem hai phần này có tích hợp đúng không. – cpuguy83
Có một ứng dụng từ Rails 1.1 đến 3.2 (và bây giờ chuẩn bị cho 4.0), tôi có thể đảm bảo với bạn rằng việc kiểm tra Rails là rất cần thiết. Một cái gì đó mà làm việc một cách trong một phiên bản của Rails có thể thay đổi hành vi trong một phiên bản khác. Ví dụ, tôi đã sử dụng để nhân bản các bản ghi activerecord bằng cách sử dụng phương thức 'clone', nhưng ở đâu đó giữa 3.0 và 3.2 họ quyết định rằng' dup' sẽ cung cấp chức năng đó thay thế ... và làm nó hơi khác. Điều này đã không được quảng cáo tốt, nhưng nó đã nhanh chóng bị bắt bởi các xét nghiệm của tôi. – sockmonk