Wednesday, 29 November 2017

Waitforexpectationswithtimeout Swift


Tive pouco sucesso praticando o desenvolvimento orientado por teste com o código assíncrono Swift 2.0 no Xcode 7. As únicas soluções com as quais tive algum sucesso são implementadas e mecanismos de atraso invadidos que evitam a necessidade de waitForExepectationsWithTimeout (). Gostaria de executar testes assíncronos da seguinte forma, mas este código falha consistentemente: Thread 1: EXCBADACCESS (code1, address0x6.) Quando a expectativa é cumprida (expectation. fulfill ()) fora do fechamento assincronamente executado, esse teste passará como Esperado (desde que comente o cumprimento dentro do encerramento). Mas, obviamente, derrota a finalidade de sincronizar a avaliação do teste. Observarei que mesmo que o teste falhe, a mensagem Executada imprime como seria de esperar. Além disso, se um ponto de interrupção for introduzido no waitForExpectationsWithTimeout. Linha, o teste sucede de forma semelhante, o teste é bem sucedido quando um atraso de sono artificial é introduzido. Isso me leva a acreditar que waitForExepectaionsWithTimeout () não está aguardando. É verdade que sou novo no Xcode e Swift, então, se estou faltando algo óbvio, agradeceria muito os comentários. O que há de errado com o meu código acima Existem variáveis ​​ambientais que posso fornecer para ajudar a depurar o problema Executando: OS X El Capitan 10.11 Beta (15A263e), Xcode 7.0 beta (7A120f) perguntou 21 de agosto 15 em 20: 06Use XCTestExpectation wait Para processos assíncronos, por exemplo: no seu caso, se você estiver testando seu método assíncrono, você deve fornecer um manipulador de conclusão para refreshThingy: então você pode testar Thingy: Francamente, esse padrão de usar um manipulador de conclusão é provavelmente algo que você Quer em seu refreshThingy. De qualquer forma, mas eu fiz o opcional no caso de você não querer fornecer um manipulador de conclusão. Respondeu 14 de dezembro 15 às 23:44 LorenzoBoaro - Você quer um valor suficientemente grande que evite falsos positivos. No meu ambiente, a latência da rede ocasionalmente (talvez raramente) exceda 1 segundo. E, geralmente, é uma pequena desvantagem de usar um grande tempo limite, porque geralmente é bem-sucedido ou falha muito mais rápido do que isso e nunca atinge o tempo limite. Ndash Rob Jun 13 16 às 14:33

No comments:

Post a Comment