簡體   English   中英

使用Kiwi的KWCaptureSpy的實際示例是什么?

[英]What is a practical example of using Kiwi's KWCaptureSpy?

我無法理解使用Kiwi的KWCaptureSpy的實際應用是什么。 我可以做這樣的事情,並使其通過:

 __block id successJSON;

  KWCaptureSpy *successBlockSpy =
      [HNKServer captureArgument:@selector(GET:parameters:completion:)
                         atIndex:2];

  [[HNKServer sharedServer] GET:@""
                     parameters:nil
                     completion:^(id JSON, NSError *error) {
                       successJSON = JSON;
                     }];

  HNKServerRequestCallback successBlock = successBlockSpy.argument;
  successBlock(@"JSON", nil);

  [[successJSON shouldEventually] equal:@"JSON"];

但這似乎並沒有實際測試任何東西。 Kiwi文檔中的示例無濟於事: https : //github.com/kiwi-bdd/Kiwi/wiki/Mocks-and-Stubs#capturing-arguments

有沒有人有充分的理由在實踐中使用KWCaptureSpy

這是一種可能的情況:

  • 您正在使用RESTful Web服務,該服務允許您通過對要更新的詳細信息執行POST /user來更新您的配置文件。
  • 您有一個HNKUser類,該類聲明了一個調用webservice的updateFirstName:lastName:方法
  • 您想確保該方法firsNamelastName發送到服務器(例如,它也不發送生日和其他詳細信息)

假設討論中的方法看起來像這樣(為簡單起見,我省略了完成處理程序):

- (void)updateFirstName:(NSString*)firstName lastName:(NSString*)lastName {
    // preparation code
    // ...
    [serverApi POST:@"/user" parameters:someParamsYouveBuiltInTheMethod completion:someCompletionHandler];
    // ...
}

那么您可能想要捕獲第二個參數,並確保它僅包含firstNamelastName字段,並且這些字段具有正確的值。

需要注意的是,建議在模擬中使用間諜,從您的示例來看,我認為您不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM