Friday, 13 April 2018

Aguarde as expectativas com o tempooutout crash course


Eu estou tentando testar uma solicitação assíncrona com XCTest e usando expectationWithDescription. No entanto, quando waitForExpectationsWithTimeout é chamado, ele cai imediatamente sem esperar pelo tempo limite. Eu até tentei colocar a operação de cumprir logo depois só para excluir um problema de timeout, mas não altero as coisas esta é minha função: O mesmo comportamento acontece em outras funções. Se eu tirar a operação waitForExpectationsWithTimeout e manter a operação expectationWithDescription, ela falha no final da função. Em ambos os casos o crash repot é o seguinte: perguntou Jul 22 15 às 12: 21 Swift tem um problema especial para mostrar o ponto de quebra de exceção correto quando os fechamentos estão presentes no mesmo escopo. Eu vi o mesmo problema em um XCTestCase que usou o dispatchafter e até mesmo através do ponto de interrupção de exceção era a mesma linha que waitForExpectationsWithTimeout o caso de teste estava falhando por causa de um downcast em um objeto nulo. Eu sei que este não é o seu caso, mas sempre que isso acontece, sugiro remover as instruções uma linha de cada vez e executar o teste após cada remoção. Se o teste não falhar, você identificou o culpado. Infelizmente, essa é a melhor opção no momento em que este texto é escrito sempre que o Swift mostra um ponto de interrupção de exceção em uma linha que não faz sentido, especialmente a linha infame 0 de uma classe que você pode ver nas ferramentas de relatório de falhas. Deixe-nos saber se você descobriu o seu crash. iOS Teste unitário Testes de unidade assíncrona usando XCTestExpectation Me deparei com uma interessante postagem no blog por Phil Beauvoir sobre Teste de Unidade Assíncrona no Xcode 6 usando o novo XCTestExpectation. Ele explica como ele converteu os testes de unidade assíncronos do Objective-C existentes para o Swift, ao mesmo tempo tornando-os mais eficientes e legíveis usando uma instância do XCTestExpectation e waitForExpectationsWithTimeout (). O XCTestExpectation é uma classe simples com 1 método: fulfill (). Crie uma instância dele e chame fulfill () quando a expectativa for atingida. Na seção de declaração de teste, chame waitForExpectationsWithTimeout (), passando pelos testes de unidade XCTestExpectation e Voila Asynchronous. Ao contrário de usar um loop de giro, isso informa explicitamente ao framework XCTest que seu teste está aguardando que um evento assíncrono aconteça, permitindo que ele execute outros testes enquanto espera. Pós-navegação Um pensamento sobre o ldquo Testes de unidade assíncronos usando o XCTestExpectation rdquo I8217ve começaram a usar as expectativas um pouco. Eles são realmente bons, pois permitiram que eu removesse algumas classes de suporte de teste, cheias de funcionalidades semelhantes, para lidar com código assíncrono. Definitivamente vale o esforço para aplicar. Deixe uma resposta Cancelar resposta Você deve estar logado para postar um comentário.

No comments:

Post a Comment