2015-10-08 20 views
10

Có cách nào để thử các yêu cầu khi viết các kiểm tra giao diện người dùng tự động trong Swift 2.0 hay không. Theo tôi biết, các kiểm tra giao diện người dùng phải độc lập với các chức năng khác. Có cách nào để giả lập phản hồi từ các yêu cầu máy chủ để kiểm tra hành vi của giao diện người dùng phụ thuộc vào phản hồi hay không. Ví dụ, nếu máy chủ bị hỏng, các kiểm tra giao diện người dùng vẫn nên chạy. Ví dụ nhanh, để đăng nhập, giả sử nếu mật khẩu không thành công thì UI sẽ hiển thị cảnh báo, tuy nhiên, nếu đăng nhập thành công, trang tiếp theo sẽ được hiển thị.Yêu cầu API Mock Xcode 7 Kiểm tra giao diện người dùng tự động Swift

+0

Đã thêm một số thẻ thích hợp hơn. – Liam

+0

Tôi nghĩ @JoeMasilotti là chính xác. Tôi sẽ có một chút lo lắng về việc bao gồm mocks, tuy nhiên, trong mã sản xuất của tôi. –

+0

Bạn có thể muốn kiểm tra SBTUITestTunnel có thể có ích để tự động chèn dữ liệu từ mã thử nghiệm vào mã ứng dụng. Xem câu trả lời của tôi [ở đây] (http://stackoverflow.com/questions/36768883/how-do-i-mock-network-requests-in-xcode-ui-tests-while-the-tests-are-running/36909859 # 36909859) –

Trả lời

6

Trong quá trình triển khai hiện tại, đây không phải là trực tiếp có thể với Kiểm tra giao diện người dùng. Giao diện duy nhất mà khung công tác có trực tiếp đến mã là thông qua launch arguments/environment.

Bạn có thể yêu cầu ứng dụng tìm khóa hoặc giá trị cụ thể trong ngữ cảnh này và bật một số chức năng. Ví dụ: nếu khóa MOCK_REQUESTS được đặt, hãy chèn MockableHTTPClient thay vì HTTPClient thực trong lớp mạng của bạn. Tôi đã viết về setting the parameters và NSHipster có một bài viết trên how to read them.

Mặc dù không lý tưởng, về mặt kỹ thuật, bạn hoàn toàn có thể thực hiện những gì bạn đang tìm kiếm bằng một số tác vụ.

Đây là số tutorial on stubbing network data for UI Testing Tôi kết hợp lại với nhau. Nó hướng dẫn bạn qua tất cả các bước bạn cần để thiết lập và chạy.

0

Nếu bạn lo lắng về ý tưởng của mocks biến nó thành môi trường sản xuất vì bất kỳ lý do gì, bạn có thể xem xét sử dụng giải pháp của bên thứ 3 như Charles Proxy.

Sử dụng công cụ bản đồ cục bộ, bạn có thể định tuyến cuộc gọi từ điểm cuối cụ thể đến tệp cục bộ trên máy của mình. Bạn có thể qua văn bản thuần túy trong tệp cục bộ của mình chứa câu trả lời bạn muốn trả lời. Mỗi ví dụ của bạn:

đăng nhập của bạn chạm endpoint yoursite.com/login

tại Charles bạn bằng cách sử dụng công cụ bản đồ địa phương, bạn có thể định tuyến các cuộc gọi đánh mà endpoint vào một tập tin được lưu trên máy tính của bạn tức là mappedlocal.txt

mappedlocal.txt chứa các văn bản sau đây
HTTP/1.1 404 Không

Khi Charles đang chạy và bạn nhấn endpoint này trả lời của bạn sẽ trở lại với một lỗi 404.

Bạn cũng có thể sử dụng tùy chọn khác ở Charles được gọi là "ánh xạ bản đồ" và xây dựng toàn bộ máy chủ giả có thể xử lý cuộc gọi và trả lời như bạn muốn. Điều này có thể không chính xác những gì bạn đang tìm kiếm, nhưng nó là một lựa chọn có thể giúp đỡ người khác, và cái mà tôi sử dụng.

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