2013-08-20 39 views
10

Trông giống như một lỗi trong RSpec nhưng có thể tôi thiếu một số thứ.Kiểm tra yêu cầu RSpec hợp nhất các mảng băm trong mảng trong các tham số POST JSON

Tôi có một spec yêu cầu nơi tôi viết JSON có chứa một mảng băm:

đặc tả/yêu cầu/dummy_request_spec.rb:

post "http://my.server.com/some/route", { 
    format: :json, 
    data: [ 
    { 
     details: { 
     param1: 1 
     }, 
    }, 
    { 
     details: { 
     param2: 1 
     } 
    } 
    ] 
} 

Đối với một số lý do kỳ quặc, RSpec kết hợp các băm vào một phần tử và sau đó gửi chúng đến máy chủ. in ra khỏi params nhận được trong điều khiển:

data: [ 
    { 
    details: { 
     param1: 1, 
     param2: 2 
    }, 
    }, 
] 

phiên bản: rspec-2.13.0 ray-3.2.10

Rất lạ !!

Cảm ơn

Trả lời

19

OK! mảng băm không được hỗ trợ cho biểu mẫu dữ liệu
RSpec theo mặc định sẽ đăng nó dưới dạng dữ liệu biểu mẫu. Giải pháp:

post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'} 
0

Ngoài ra, hãy lưu ý rằng bạn có thừa một dấu phẩy:

data: [ 
    { 
    details: { 
    param1: 1 
    }**,** 
    }, 
    { 
    details: { 
    param2: 1 
    } 
    } 
] 
Các vấn đề liên quan