Chúng tôi đã thử nghiệm thành công tất cả các API REST của chúng tôi bằng cách sử dụng Specs2 và thư viện Công văn (https://dispatchhttp.org/Dispatch.html). Công văn mất một chút thời gian để có được đầu của bạn xung quanh, nhưng một khi bạn hiểu cách nó soạn mọi thứ cùng với các toán tử khác nhau, bạn có thể thử nghiệm một dịch vụ REST đơn giản với một vài dòng mã.
Dưới đây là một vài trường hợp thử nghiệm từ dự án gần đây ra:
def issueErrorStatus = {
val requestBody = "msisdn=447777666666&message=Some test message"
val req = url("http://localhost:%d/otac/issue".format(port)) <<
(requestBody, "application/x-www-form-urlencoded")
val response = Http.when(_ == 400)(req <:< (touchPointHeaders) as_str)
response must_== """{"error":"Message must contain an {OTAC} place holder"}"""
}
def checkOtac = {
val req = url("http://localhost:%d/otac/check".format(port)) <<?
Vector(("msisdn" -> "447777123456"))
val response = Http(req <:< (touchPointHeaders) as_str)
response must_== """{"status":"Present","reissueAllowed":true}"""
}
Các thử nghiệm đầu tiên làm cho một bài yêu cầu, thứ hai yêu cầu get. Chúng tôi cũng có một số thử nghiệm phức tạp hơn phân tích cú pháp chuỗi JSON phản hồi thông qua trình phân tích cú pháp-json để chúng tôi có thể khẳng định lại tài liệu dễ dàng hơn. Các bài kiểm tra ở trên chỉ là kiểm tra một số trường hợp lỗi/trạng thái đơn giản.
Ngoài ra còn có một dự án khởi động lại đang tiến hành có API đơn giản và hoạt động với kết nối không đồng bộ. Bạn không chắc chắn nó ổn định như thế nào.
Nguồn
2012-05-10 12:49:35