2013-04-18 43 views
6

Tôi đã áp dụng một ứng dụng có phạm vi kiểm tra nhưng hầu hết các thử nghiệm đều có chất lượng hỗn hợp. Phần lớn ứng dụng đang hoạt động dựa trên api JSON. Tôi sẽ viết thông số yêu cầu nhưng xác thực và sau đó gửi POST với dữ liệu xác thực không phải là tầm thường. Để kiểm tra api JSON, các thông số kỹ thuật của bộ điều khiển có phù hợp hơn không?thông số kỹ thuật tích hợp/yêu cầu rspec và thông số kỹ thuật điều khiển với chú trọng trên JSON api

Ví dụ,

match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' } 

Điều này dường như là tầm thường để có được ít nhưng sẽ đòi hỏi một spec tích hợp với Capybara. Ngoài ra, capybara sẽ không gửi dữ liệu phiên một cách nguyên bản và sẽ yêu cầu

page.driver.post ..... 

Tôi nhận được thử nghiệm tích hợp để thử nghiệm tương tác UI nhưng có vẻ như một mô hình thực sự xấu để thử nghiệm một JSON api. Tui bỏ lỡ điều gì vậy? Hoặc là có một hướng dẫn để làm bài kiểm tra tích hợp/requeset? Tôi đang xem bài diễn văn ngay bây giờ và khá nhiều bài kiểm tra của họ là bộ điều khiển .... nếu các thông số tích hợp/yêu cầu là đầu gối ong, tại sao họ lại đưa ra quyết định đó?

thx trước

+0

[Không sử dụng Capybara để kiểm tra API] (https://www.varvet.com/blog/capybara-and-testing-apis/). –

+0

Re: câu hỏi đầu tiên của bạn, "để thử nghiệm một api JSON sẽ thông số kỹ thuật điều khiển được thích hợp hơn?" Nó phụ thuộc vào những gì bạn đang thử nghiệm? Bạn có phải là chức năng kiểm soát đơn vị kiểm tra (trạng thái HTTP trả về, chuyển hướng, thay đổi model.count), nội dung JSON hoặc các mục đích chéo như xác thực/ủy quyền không? – Midwire

Trả lời

-1

tôi sẽ làm các xét nghiệm hội nhập-phong cách, hơi giống như this SO post.

Tương tác với điểm cuối API thông qua JSON cao hơn so với bộ điều khiển, vì vậy tôi có thể sử dụng các mô tả khối featurescenario được cung cấp bởi RSpec. (ví dụ: here).

Chức năng, nó không khác nhiều so với thông số bộ điều khiển, nhưng giúp đẩy bạn về phía kịch bản/loại tính năng thử nghiệm, chứ không phải thử nghiệm cấp đơn vị.

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