Sunday 19 November 2017

Waitforexpectationswithtimeout crash course


Estou tentando testar um pedido assíncrono com XCTest e, portanto, usando expectationWithDescription. No entanto, quando waitForExpectationsWithTimeout é chamado imediatamente trava sem mesmo esperar o tempo limite. Eu tentei mesmo pôr a operação da realização logo após apenas para excluir uma edição do timeout, mas di nenhumas coisas da mudança esta é minha função: O mesmo comportamento acontece em outras funções. Se eu tirar a operação waitForExpectationsWithTimeout e manter a operação de expectativaWithDescription, ele falha no final da função. Em ambos os casos, o repot de falha é o seguinte: perguntado Jul 22 15 at 12: 21Swift tem problemas especiais para mostrar o ponto de ruptura de exceção correto quando fechamentos estão presentes no mesmo escopo. Eu vi o mesmo problema em um XCTestCase que usou dispatchafter e até mesmo através do ponto de interrupção de exceção era a mesma linha como waitForExpectationsWithTimeout o caso de teste estava falhando por causa de um downcast em um objeto nil. Eu sei que este não é o seu caso, mas sempre que isso acontece eu sugiro remover as declarações de uma linha de cada vez e executando o teste após cada remoção. Se o teste não falhar, você identificou o culpado. Esta é, infelizmente, a melhor opção no momento desta escrita sempre que Swift mostra um ponto de interrupção de exceção em uma linha que não faz sentido, especialmente a infame linha 0 de uma classe que você pode ver em ferramentas de relatório de falhas. Deixe-nos saber se você descobriu o seu crash. iOS Unit Testing Teste de unidade assíncrona usando XCTestExpectation Eu vim através de uma postagem de blog interessante por Phil Beauvoir sobre testes de unidade assíncrona no Xcode 6 usando o XCTestExpectation novo. Ele explica como ele converteu os testes de unidade do iOS assíncrono Objective-C para o Swift, tornando-os mais eficientes e legíveis usando uma instância de XCTestExpectation e waitForExpectationsWithTimeout (). XCTestExpectation é uma classe de sujeira simples com um método: fulfil (). Crie uma instância do mesmo e chame fulfill () quando a expectativa for cumprida. Na seção de declaração de teste, chame waitForExpectationsWithTimeout (), passando os testes de unidade XCTestExpectation e Voila Asynchronous. Ao contrário de usar um loop de rotação, isso explicitamente informa o framework XCTest que seu teste está esperando por um evento assíncrono acontecer, permitindo que ele execute outros testes enquanto espera. Post navigation Um pensamento sobre ldquo Testes de unidade assíncrona usando XCTestExpectation rdquo I8217ve começou a usar as expectativas um pouco. Eles são realmente bons em que it8217s me permitiu remover algumas classes de suporte de teste cheio de funcionalidade semelhante para manipulação de código assíncrono. Definitivamente vale o esforço para aplicar. Deixe uma resposta Cancelar resposta Você deve ser logado para postar um comentário.

No comments:

Post a Comment