Compartilhar via


TestUtils Classe

  • java.lang.Object
    • com.azure.core.test.utils.TestUtils

public final class TestUtils

Contém métodos utilitários usados para teste.

Resumo do método

Modificador e tipo Método e descrição
static void assertArraysEqual(byte[] expected, byte[] actual)

Afirma que duas matrizes são iguais.

static void assertArraysEqual(byte[] expected, int expectedOffset, byte[] actual, int actualOffset, int length)

Afirma que duas matrizes são iguais.

static void assertByteBuffersEqual(ByteBuffer expected, ByteBuffer actual)

Afirma que dois ByteBuffers são iguais.

static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps)

Encapsula um HttpClient para fazer chamadas para o injetor de falha HTTP para testar falhas de rede aleatórias.

static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps, int successRate, int partialRate, int failureRate)

Encapsula um HttpClient para fazer chamadas para o injetor de falha HTTP para testar falhas de rede aleatórias.

static File getRecordFolder()

Obtenha o File apontando para a pasta em que os registros de sessão residem.

static Path getRepoRootResolveUntil(Path testClassPath, String resolveFolder)

Localiza a raiz do repositório atual até o pai da pasta fornecida.

static URI toURI(URL url)

Retorna um URI equivalente a essa URL.

Métodos herdados de java.lang.Object

Detalhes do método

assertArraysEqual

public static void assertArraysEqual(byte[] expected, byte[] actual)

Afirma que duas matrizes são iguais.

Esse método é semelhante ao do Assertions#assertArrayEquals(byte[], byte[]) JUnit, exceto que ele aproveita os intrínsecos de hardware oferecidos pelo JDK para otimizar a comparação das matrizes de bytes.

Se as matrizes não forem iguais, isso chamará Assertions#assertArrayEquals(byte[], byte[]) para aproveitar a melhor mensagem de erro, mas esse é o caso excepcional e vale o duplo impacto no desempenho de comparação.

Parâmetros:

expected - A matriz de bytes esperada.
actual - A matriz de bytes real.

assertArraysEqual

public static void assertArraysEqual(byte[] expected, int expectedOffset, byte[] actual, int actualOffset, int length)

Afirma que duas matrizes são iguais.

Esse método é semelhante ao do Assertions#assertArrayEquals(byte[], byte[]) JUnit, exceto que ele aproveita os intrínsecos de hardware oferecidos pelo JDK para otimizar a comparação das matrizes de bytes e permite comparar subseções das matrizes.

Se as matrizes não forem iguais, isso copiará os intervalos de matriz e chamará Assertions#assertArrayEquals(byte[], byte[]) para aproveitar a melhor mensagem de erro, mas esse é o caso excepcional e vale a pena o duplo impacto no desempenho de comparação.

Parâmetros:

expected - A matriz de bytes esperada.
expectedOffset - Deslocamento inicial para começar a comparar na matriz esperada.
actual - A matriz de bytes real.
actualOffset - Deslocamento inicial para começar a comparar na matriz real.
length - Quantidade de bytes a serem comparados.

assertByteBuffersEqual

public static void assertByteBuffersEqual(ByteBuffer expected, ByteBuffer actual)

Afirma que dois ByteBuffers são iguais.

Esse método é semelhante ao do Assertions#assertArrayEquals(byte[], byte[]) JUnit, exceto que ele aproveita os intrínsecos de hardware oferecidos pelo JDK para otimizar a comparação dos ByteBuffers.

Se os ByteBuffers não forem iguais, isso copiará o conteúdo do ByteBuffer em matrizes de bytes e chamará Assertions#assertArrayEquals(byte[], byte[]) para aproveitar a melhor mensagem de erro, mas esse é o caso excepcional e vale a pena o duplo impacto no desempenho de comparação.

Parâmetros:

expected - O esperado ByteBuffer.
actual - O real ByteBuffer.

getFaultInjectingHttpClient

public static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps)

Encapsula um HttpClient para fazer chamadas para o injetor de falha HTTP para testar falhas de rede aleatórias.

O uso do HttpClient retornado por esse método requer que toda a configuração exigida pelo injetor de falha HTTP seja configurada. useHttps determina se as solicitações são encaminhadas para o injetador de falhas HTTP usando HTTPS ou HTTP, o uso de HTTP não exige que o certificado autoassinado usado pelo injetor de falha HTTP seja confiável pela JVM, facilitando o protótipo de testes usando o injetor de falha HTTP. Os testes prontos para mesclagem sempre devem usar HTTPS.

O HttpClient retornado usará os percentuais de resposta de falha e êxito padrão. 75% da solicitação terá êxito, 24% das solicitações falharão com um corpo parcial retornado e 1% das solicitações nunca retornarão uma resposta. É recomendável para testes que usam o injetor de falha HTTP para definir HttpClientOptions#setResponseTimeout(Duration) e HttpClientOptions#setReadTimeout(Duration)ou os métodos equivalentes diretamente no construtor de clientes HTTP que está sendo usado, pois os tempos limite padrão são de 60 segundos e com as respostas falhando aleatoriamente, reduzir o tempo limite permitirá que os testes sejam executados mais rapidamente enquanto ainda testam o mesmo.

Parâmetros:

clientToWrap - O HttpClient que está sendo encapsulado que enviará a solicitação real.
useHttps - Se HTTPS deve ser usado para se comunicar com o injetor de falha HTTP.

Retornos:

Um HttpClient que encaminha solicitações para o injetor de falha HTTP com tratamento automático de injeção de falha para executar testes com rede irregular.

getFaultInjectingHttpClient

public static HttpClient getFaultInjectingHttpClient(HttpClient clientToWrap, boolean useHttps, int successRate, int partialRate, int failureRate)

Encapsula um HttpClient para fazer chamadas para o injetor de falha HTTP para testar falhas de rede aleatórias.

O uso do HttpClient retornado por esse método requer que toda a configuração exigida pelo injetor de falha HTTP seja configurada. useHttps determina se as solicitações são encaminhadas para o injetador de falhas HTTP usando HTTPS ou HTTP, o uso de HTTP não exige que o certificado autoassinado usado pelo injetor de falha HTTP seja confiável pela JVM, facilitando o protótipo de testes usando o injetor de falha HTTP. Os testes prontos para mesclagem sempre devem usar HTTPS.

O HttpClient retornado usará os percentuais de resposta de falha e êxito especificados. A combinação de successRate, partialRatee failureRate deve ser igual a 100, se não um IllegalArgumentException será lançada. Um IllegalArgumentException também será gerado se qualquer um dos valores for negativo. É recomendável para testes que usam o injetor de falha HTTP para definir HttpClientOptions#setResponseTimeout(Duration) e HttpClientOptions#setReadTimeout(Duration)ou os métodos equivalentes diretamente no construtor de clientes HTTP que está sendo usado, pois os tempos limite padrão são de 60 segundos e com as respostas falhando aleatoriamente, reduzir o tempo limite permitirá que os testes sejam executados mais rapidamente enquanto ainda testam o mesmo.

Parâmetros:

clientToWrap - O HttpClient que está sendo encapsulado que enviará a solicitação real.
useHttps - Se HTTPS deve ser usado para se comunicar com o injetor de falha HTTP.
successRate - Porcentagem de solicitações que terão êxito.
partialRate - Porcentagem de solicitações que serão parcialmente bem-sucedidas.
failureRate - Porcentagem de solicitações que falharão.

Retornos:

Um HttpClient que encaminha solicitações para o injetor de falha HTTP com tratamento automático de injeção de falha para executar testes com rede irregular.

getRecordFolder

public static File getRecordFolder()

Obtenha o File apontando para a pasta em que os registros de sessão residem.

Retornos:

A pasta session-records.

getRepoRootResolveUntil

public static Path getRepoRootResolveUntil(Path testClassPath, String resolveFolder)

Localiza a raiz do repositório atual até o pai da pasta fornecida.

Parâmetros:

testClassPath - o caminho da classe de teste
resolveFolder - a pasta pai para resolve o caminho até

Retornos:

O Path na raiz do repositório.

toURI

public static URI toURI(URL url)

Retorna um URI equivalente a essa URL.

Parâmetros:

url - a URL a ser convertida em URI

Retornos:

o URI

Aplica-se a