модульное тестирование iOS функция с отправкой - PullRequest
0 голосов
/ 17 июня 2020

Я впервые работаю с модульным тестированием и теряюсь в некоторых конкретных c случаях.

Несмотря на то, что я много читаю, я не понимаю, как тестировать такую ​​функцию в iOS:

func myFunction() {

    dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
          // Tasks to do in background
            dispatch_async(dispatch_get_main_queue(), ^(void){
            // Get the results
            // Update UI
         });
    });
}

Я читал об «ожиданиях» (https://developer.apple.com/documentation/xctest/asynchronous_tests_and_expectations/testing_asynchronous_operations_with_expectations?language=objc), но не знаю, как их использовать. Думаю, мне следовало бы вызвать expectation.fulfill (), но я не знаю где.

1 Ответ

0 голосов
/ 17 июня 2020

Поскольку myFunction не принимает обработчик завершения, в котором вы можете вызвать fulfill, он не поддается тестированию.

Вам нужно будет реорганизовать функцию, чтобы принять необязательное закрытие обработчика завершения и чтобы вызвать его после завершения работы. Затем вы можете передать закрытие при вызове функции из своего теста, в котором вы можете fulfill ожидание.

...