Saturday 16 December 2017

Jasmine js waitforexit


Uso jasmine e aguardo para testar operações assíncronas. Tudo funciona bem, mas não tenho certeza do que acontece nos bastidores. A documentação jasmine indica o seguinte exemplo ao qual eu adicionei três instruções de log. As primeiras corridas e as expectativas são perfeitamente claras para mim. Funciona inicia uma operação assíncrona e espera. Espera por uma condição. No entanto, não entendo por que o segundo não é iniciado até que o WaitFor for concluído. O waitFor não é uma chamada de bloqueio. Meu palpite é que waitsFor bloqueia implicitamente qualquer chamada de execução seguinte até que seja concluída. Isso é assim. Minha evidência é que o resultado das instruções console. log: Mas se waitsFor realmente bloquear, deve ser waitsFor bloqueia até que as condições que esperam sejam atendidas ou expirar. Dos documentos do jasmim. WaitsFor () fornece uma interface melhor para pausar suas especificações até que algum outro trabalho tenha completado. Jasmine aguardará até que a função fornecida retorna verdadeira antes de continuar com o próximo bloco. Os documentos vinculados também possuem um exemplo um pouco mais claro ou aguardam. EDITAR. Ah, eu vejo o que você quer dizer agora. WaitsFor não bloqueará JS que não está envolvido em corridas. Espera. Ect. O que o jasmim está fazendo é levar a função passada através de corridas ou espera e, se o jasmine não estiver aguardando, ele executa a função imediatamente. Se estiver aguardando, não o chama até a espera. Isso não pára o console. log como foi passado para jasmim para que jasmine não possa impedir que ele seja executado de imediato. introduction. js Jasmine é uma estrutura de desenvolvimento orientada por comportamento para testar o código JavaScript. Não depende de nenhum outro framework de JavaScript. Não requer um DOM. E tem uma sintaxe clara e óbvia para que você possa facilmente testar testes. Este guia está em execução contra a versão jasmim preenchida em funcionamento. Distribuição autônoma A página de lançamentos tem links para baixar a distribuição autônoma, que contém tudo o que você precisa para começar a executar Jasmine. Depois de baixar uma versão específica e descompactar, a abertura do SpecRunner. html executará as especificações incluídas. Você notará que ambos os arquivos de origem e suas respectivas especificações estão ligados no ltheadgt do SpecRunner. html. Para começar a usar Jasmine, substitua os arquivos sourcespec com os seus próprios. Suites: descreva seus testes Um conjunto de teste começa com uma chamada para a função Jasmine global descreva com dois parâmetros: uma string e uma função. A string é um nome ou título para uma suíte de especificações - geralmente o que está sendo testado. A função é um bloco de código que implementa a suite. As especificações são definidas ao chamar a função Jasmine global. Que, como descrito, leva uma string e uma função. A string é o título da especificação e a função é a especificação, ou teste. Uma especificação contém uma ou mais expectativas que testam o estado do código. Uma expectativa em Jasmine é uma afirmação que é verdadeira ou falsa. Uma especificação com todas as expectativas verdadeiras é uma especificação passageira. Uma especificação com uma ou mais falsas expectativas é uma especificação falha. É apenas uma Função Uma vez que descreve e bloqueia funções, elas podem conter qualquer código executável necessário para implementar o teste. As regras de definição de JavaScript aplicam-se, portanto, as variáveis ​​declaradas em uma descrição estão disponíveis para qualquer bloco dentro da suite. Jasmine tem testes de funções duplas chamadas espiões. Um espião pode substituir qualquer função e rastrear chamadas para ele e todos os argumentos. Um espião só existe na descrição ou bloco em que é definido e será removido após cada especificação. Existem correspondentes especiais para interagir com espiões. Essa sintaxe mudou para Jasmine 2.0. O conversador toHaveBeenCalled retornará verdadeiro se o espião for chamado. O toHaveBeenCalledWith matcher retornará verdadeiro se a lista de argumento corresponder a qualquer uma das chamadas gravadas ao espião.

No comments:

Post a Comment