2014-11-13 3 views
0

Я пытался написать единичные тестовые примеры с использованием XCTest для SLComposeViewController и пока не нашел решения. Любое предложение с точки зрения подхода и кода было бы полезно.XCTests для SLComposeViewController

Моя цель состоит в том, чтобы проверить код, приведенный ниже, используя XCTest

SLComposeViewController *tweetSheet = [SLComposeViewController 
                composeViewControllerForServiceType:SLServiceTypeTwitter]; 

      SLComposeViewControllerCompletionHandler __block completionHandler = ^(SLComposeViewControllerResult result) 
      { 

       [tweetSheet dismissViewControllerAnimated:YES completion:nil]; 

       switch(result) 
       { 

        case SLComposeViewControllerResultCancelled: 
        { 

         [self showAlertWithTitle:nil 
              andMsg:NSLocalizedString(@"Sharing failed", @"Workout summary text")]; 

        } 

         break; 

        case SLComposeViewControllerResultDone: 
        { 

         [self showAlertWithTitle:NSLocalizedString(@"Success", @"Success") 
              andMsg:NSLocalizedString(@"Message shared", @"Workout summary share text")]; 

        } 

         break; 

       } 

      }; 

ответ

0

Если вы хотите выполнить асинхронный тест, вы создаете «ожидание» объект, объект, который устанавливает ожидание того, что некоторые асинхронные задачи будет завершена в более поздний момент времени. Затем в вашем блоке завершения асинхронных задач вы выполняете это ожидание. Наконец, в основной очереди, после того, как вы инициируете асинхронную задачу, вы ждете, что это ожидание будет выполнено.

Таким образом, соединив, что все вместе, асинхронный тест будет выглядеть

- (void)testSomethingAsynchronous 
{ 
    XCTestExpectation *expectation = [self expectationWithDescription:@"some description"]; 

    [self doSomethingAsynchronousWithCompletionHandler:^{ 

     // do whatever tests you want 

     // when all done, fulfill the expectation 

     [expectation fulfill]; 
    }]; 

    [self waitForExpectationsWithTimeout:30.0 handler:nil]; 
} 
Смежные вопросы