Bạn có thể làm những gì tôi nghĩ bạn đang cố gắng để đạt được bằng cách tạo ra một đối tượng giả mà đứng ở cho các đại biểu, và sau đó kiểm tra xem các đối tượng giả nhận được callbacks đại biểu mà bạn mong đợi . Vì vậy, quá trình này sẽ như thế nào:
- tạo một đối tượng giả mà phù hợp với các giao thức đại biểu:
id delegateMock = [KWMock mockForProtocol:@protocol(YourProtocol)];
- thiết lập các mô hình như các đại biểu của lớp quản lý của bạn:
[manager setDelegate:delegateMock];
- tạo một đối tượng chứa dữ liệu đó sẽ được trả lại bởi lớp quản lý của bạn:
NSString *response = @"foo";
- thiết lập sự khẳng định rằng giả nên cuối cùng được gọi với các phương pháp và phản ứng đối tượng (trong trường hợp này, tôi đang mong nhận được
managerRepliedWithResponse
và foo
)
[[[delegateMock shouldEventually] receive] managerRepliedWithResponse:response];
[manager performMyMethod];
Điều quan trọng là thiết lập sự mong đợi trước bạn gọi phương thức, và sử dụng shouldEventually
mà trì hoãn sự khẳng định được kiểm tra và đưa ra thời gian đối tượng manager
để thực hiện phương thức.
Có một loạt các mong đợi của bạn cũng có thể sử dụng được liệt kê trên wiki Kiwi - https://github.com/allending/Kiwi/wiki/Expectations
Tôi đã viết quá trình lên in more detail in a post on my site, dù rằng nó cụ thể hơn hướng lên với tình hình tôi đang đối phó với .
1 cho các chi tiết rất tinh tế nhưng rất quan trọng! "Điều quan trọng là đặt kỳ vọng trước khi bạn gọi phương thức" – Bach
Nó đã được nhiều hơn một năm nay và tôi đang đấu tranh với cùng một điều. Nó chỉ đơn giản là không làm việc, trước/sau với expectFutureValue/mà không có. Cách duy nhất tôi có thể có sự chờ đợi này cho yêu cầu được thực hiện là bằng cách có một giá trị thực sự để kiểm tra ở đâu đó. – Hugo