2012-02-27 18 views
6

Tôi cần kiểm tra một số thành phần HTTP trong ứng dụng Delphi của mình. Tôi sử dụng DUnit và muốn thêm một số tự động hóa vào thử nghiệm. Vì vậy, mã thử nghiệm của tôi cần phải khởi động máy chủ HTTP cục bộ, cấu hình nó (ví dụ, chuẩn bị ngắt kết nối trong 3 giây, hoặc để mô phỏng băng thông thấp, hoặc yêu cầu đăng nhập/mật khẩu, v.v.), chạy đơn vị của tôi- kiểm tra và đóng máy chủ HTTP.Máy chủ HTTP để kiểm tra đơn vị trong Delphi

Có một số máy chủ HTTP có sẵn chính xác cho Delphi/DUnit không?

Tôi biết rằng nhóm Mozilla có such server, nhưng không quá dễ dàng để tích hợp nó vào DUnit.

Trả lời

9

Tôi sử dụng số TIdHttpServer của Indy để phân phát nội dung trong cùng một quy trình.

Cách tiếp cận này cho phép tôi kiểm tra xem các yêu cầu đến có chính xác không, cũng như kiểm tra hành vi từ phía máy khách.

Ngoài ra, bạn có thể thiết lập riêng máy chủ trên một testcase theo cơ sở testcase, làm cho các bài kiểm tra đơn vị của bạn dễ hiểu hơn (nghĩa là bạn không có một phần 'test' ở một nơi khác).

0

Bạn có thể sử dụng kiểm tra đơn vị/DUnit để xây dựng các thử nghiệm tích hợp tự động. Giả sử, các thành phần HTTP của bạn là ứng dụng khách http thực hiện cuộc gọi đến một dịch vụ Web. Bạn có thể tạo dịch vụ Web giả của riêng mình hoặc chỉ sử dụng bất kỳ dịch vụ web công cộng nào, chẳng hạn như một trong những dịch vụ từ Google hoặc Amazon. Vì vậy, bạn chỉ cần tạo tài khoản nhà phát triển Google hoặc Amazon và sử dụng một số chức năng dịch vụ cơ bản để thử nghiệm.

0

Nếu bạn đang thử nghiệm dịch vụ SOAP, hãy sử dụng SoapUI để đứng lên dịch vụ "giả" dựa trên WSDL của bạn. Bạn có thể làm cho nó trả về một loạt các câu trả lời (hoặc theo tuần tự, hoặc sử dụng một số kịch bản đơn giản để khớp các câu trả lời cho các nội dung yêu cầu.) Tôi đã làm điều này bằng cách kết hợp "ID yêu cầu" (chỉ GUID) trong yêu cầu của tôi được gửi từ kiểm tra DUnit, để trả lời trong SoapUI. Đó là một truy vấn xpath đơn giản để phù hợp với chúng.

Bạn có thể trả lại lỗi/trường hợp ngoại lệ "đóng hộp" và tất nhiên khi nó không chạy, bạn sẽ có trường hợp kiểm tra "không ai ở nhà".