Scala afirma

Scala afirma

Afirmar é comumente usado no teste da funcionalidade de um programa. Como argumento, o método assert deve provar a condição que se segue. Este método está incluído no pacote Predef Scala; Portanto, nenhum outro pacotes é necessário. No artigo, entenderemos o conceito de afirmação em Scala. O método assert precisa de uma condição para ser satisfeito ao executar uma ação específica.

O que é afirmado em Scala?

O método assert em Scala é uma maneira de verificar dinamicamente o invariante. O método assert toma uma expressão booleana como um parâmetro e o verifica em todo o código fornecido. Se a expressão booleana for verdadeira, a afirmação de Scala será executada normalmente. Se false, então a afirmação de Scala falhará com um assertionError. Há outro método definido pelo traço de afirmação que oculta o especificado por predef scala. É o mesmo que assertionError, mas lança uma testFailedException na condição falsa. Scalatest afirma dá um erro de mensagem preciso do que a afirmação de Scala.

Como digitar fundição em Scala no Ubuntu 20.04?

Scalatest fornece três afirmações por padrão. Estes são os seguintes:

Afirmar: afirmar pode ser usado para fazer afirmações gerais.

ASSERTRESULT: Para distinguir entre números esperados e reais.

Interceptar: Para verificar se um pedaço de código joga é uma exceção esperada.

Para saber como esses métodos funcionarão em um programa Scala, devemos ter algumas práticas no exemplo abaixo. Todas as implementações estão no ScalA SBT Build for Scalatest Afirtion no Aplicação Intellij Idea.

Exemplo # 1: Programa de Método Assert em Scala

Afirmar é usado para fazer declarações gerais. Podemos escrever afirmações em qualquer programa Scala chamando a palavra -chave "assert". Em seguida, passando a expressão booleana no método assert de Scala. Vamos ter alguns métodos de afirmação prática no programa Scala.

No programa Scala acima, temos objetos de classe representados como "exemplos". No método principal de "exemplo", definimos variáveis ​​como "val". As variáveis ​​são definidas como "comprimento" e "largura" que são inicializadas com diferentes valores numéricos. Usamos a palavra -chave "assert" para o método de afirmação. No método assert de Scala, temos uma expressão booleana como comprimento é igual à largura. O método assert de Scala retornará normalmente se a expressão booleana especificada for verdadeira. Se a expressão booleana dada for falsa, o método assert falhará com um assertionError.

Como temos valores diferentes de comprimento e largura, a condição é falsa. Temos uma assertionError quando a afirmação falhou. A exceção é apresentada na imagem abaixo.

Exemplo # 2: Programa do Método AssertResult em Scala

O exemplo acima é incapaz de distinguir entre os valores reais e esperados. Como o operando “==” é simplesmente denominado. Para esse fim, temos um método denominado resultado de assert, que pode ser usado contra palavras -chave assert. Depois de usar assertresult., Vamos passar o valor esperado nele. Assertesult devem aprovar o valor esperado ou exceções ocorrerão.

No código aéreo, importamos a “organização.Scalatest.Pacote de fósforos "de" Org. Scalatest ". Este pacote é basicamente para afirmação mais escalada. Então, temos uma classe de objeto como "assert1". No método principal de assert1, definimos duas variáveis. A variável está armazenando os valores numéricos que são definidos como "x" e "y". Vamos imprimir os valores de "x" e "y" através da declaração de impressão. Depois disso, temos o método de assertores que tem um valor esperado de 4, como mencionado no código. No método assertresult, estamos realizando a operação de subtração nas variáveis ​​"X" e "Y". Se obtivermos o valor de "x-y" como o valor esperado, a declaração de impressão mostrará o valor de retorno de "x-y" ou então teremos uma testFailedException.

Do "x-y", temos um valor de retorno "1", mas "4" é o valor esperado. Portanto, a saída tem uma descrição do testFailedException como abaixo.

No código de exemplo de assertresults acima, temos uma exceção no código porque o valor "x-y" retornado é diferente do valor esperado. Agora, sabemos que os resultados do valor esperado como x-y é igual a 1. Passamos o valor "1" no método assertresult para ver o que ele retornará. Se o valor esperado for retornado, apenas a declaração de impressão imprimirá o resultado "x-y".

Como temos um retorno de valor esperado como uma saída, o código será executado normalmente.

Exemplo # 3: Programa de OfsertTrows and Intercept Method in Scala

Quando uma função é chamada com entrada inválida, podemos precisar verificar se uma função lança uma exceção previsível em uma condição satisfatória. Não podemos fazer isso no Scalatest, que fornece dois métodos: os contratos de retenção e o método de interceptação.

No código aéreo, declaramos uma classe de objeto como "assert1". No método principal da classe de objeto, definimos uma variável como "val". A variável é definida como "a" e inicializada com a string scala. Em seguida, chamamos o método de lesão em que temos o método charat. Passamos o número do índice para uma string scala de variável e como -2. Os OfsertTrows retornarão com sucesso. Após a execução, não temos uma exceção e a saída é impressa na imagem abaixo.

O programa é o mesmo que mostrado abaixo, apenas usando o método de interceptação.

A função de interceptação é semelhante aos contratos de retenção, mas, em vez de retornar verdadeiro, retorna a exceção capturada, que você pode analisar ainda mais, se desejado. No código acima, estamos verificando se os dados dentro da exceção têm os valores esperados. Como fornecemos o valor esperado, a execução deste código é normal, como no exemplo de código acima de alternões.

Conclusão

O guia tem como objetivo dar uma compreensão clara e concisa da afirmação de Scala e Scalatest mais. A afirmação mais escalatória é necessária para validar a execução do programa. Demonstramos todos os três por padrão Scalatest Aftertion junto com a implementação de exemplo dada e também mostramos as exceções no tempo de compilação. Essas ilustrações ajudarão você a lidar com a afirmação mais escalada.