2015-05-02 14 views
14

Tôi đang cố gắng viết bài kiểm tra chấp nhận trong KIF trên ứng dụng yêu cầu quyền thông báo cục bộ khá sớm. Rất tiếc là do lý do bảo mật của trình mô phỏng iOS it isn't possible to automate accepting iOS permission alerts using KIF. Mỗi https://stackoverflow.com/a/28443743/62 có vẻ như có nhiều cách để tắt cảnh báo quyền cho vị trí, sổ địa chỉ, lịch và ảnh nhưng tôi không thể tìm cách tắt quyền thông báo cục bộ. Tôi đã thử cách tiếp cận quyền lợi từ câu hỏi được liên kết nhưng không có phím nào sau đây hoạt động:Xóa cảnh báo quyền iOS cho thông báo cục bộ khi chạy ứng dụng trong trình mô phỏng

kTCCServiceNotifications 
kTCCServiceNotification 
kTCCServiceLocalNotification 
kTCCServiceLocalNotifications 

Bất kỳ ý tưởng nào khác? Bây giờ tôi đang làm việc xung quanh điều này bằng cách thay đổi mã sản xuất của tôi để vô hiệu hóa điều kiện thông báo địa phương khi kiểm tra chấp nhận đang chạy, nhưng lý tưởng là tôi sẽ không phải làm như vậy.

+0

câu hỏi nhanh, bạn tìm thấy chìa khóa ở đâu? có một liên kết? –

+0

Tôi không tìm thấy các khóa đó, tôi đoán chúng, nhưng chúng không hoạt động. Nếu bạn nhìn vào https://groups.google.com/forum/#!topic/kif-framework/xayP4VVBPyg bạn sẽ thấy các phím hoạt động. –

Trả lời

2

Thật không may, tôi không nghĩ rằng trong thử nghiệm tự động hóa có một cách hay để thực hiện việc này. Tôi biết rằng thậm chí đặt lại trình mô phỏng đôi khi không đủ để đặt lại quyền. Tôi sẽ thiết kế các thử nghiệm của bạn để không kiểm tra một cuộc gọi hệ thống, nhưng mã ứng dụng của riêng bạn.

Một cách để kiểm tra chức năng khác nhau dựa trên việc người dùng cho phép thông báo có trích xuất cuộc gọi để kiểm tra quyền và sau đó đưa phương pháp này ra trong thử nghiệm hay không. Phương pháp này sẽ là phương pháp hay nhất vì mục tiêu không phải là để kiểm tra xem iOS có hoạt động hay không nhưng nếu mã ứng dụng của bạn là chính xác.

0
phép

Notification có thể bị dập tắt bằng cách cấp phép trong applicationState.plist:

  • Chạy ứng dụng của bạn trên một mô phỏng và bấm vào "ok" cho bất kỳ sự cho phép popup
  • điều hướng đến "~/Library/Developer /CoreSimulator/Devices/{$deviceId}/data/Library/BackBoard/applicationState.plist"
  • Thay applicationState.plist của mô phỏng thử nghiệm giao diện người dùng với một ở trên trước khi bootstrapping nó
Các vấn đề liên quan