Afirmando UUID em junit

Thiru:

Eu tenho um método que constrói um objeto e retorna.

O objeto como UUID como um de seus campos. Embora a construção do objeto, UUID aleatório é gerado. Aqui está o código:

public MetaData getMetaData(String id) {
  return MetaData.newBuilder().setId(id)
    .setCorrelationId(UUID.randomUUID().toString())
    .setCreatedAt(now(UTC).format(ISO_ZONED_DATE_TIME))
    .build();
}

Aqui está o meu teste:

@Test
public void shouldVerifyIfTheMetaDataIsBuild() {

  MetaData metaData = handler.getMetaData("1234");

  assertThat(metaData.getId(), is("1234"));
  assertThat(metaData.getCorrelationId(), isNotNull());
}

Eu só estou verificando se o correlationIdnão é nulo ou não. Existe uma maneira melhor para verificar o UUID?

GhostCat saudações Monica C.:

A única maneira de verificar o código de produção atual é, sim, verifique se CorrelationId não é nulo. Você também pode verificar que o layout do string esperado corresponde a uma string UUID válido.

Claro, quando você quer um pouco de uma melhor verificação, então você simplesmente tem que substituir UUID.randomUUID().toString()com algo que você pode controlar .

Por exemplo, você poderia criar uma UUIDGeneratorinterface, com um método padrão que cria um aleatório UUID, como mostrado em seu código. Mas em sua configuração de teste, você em vez disso fornecer uma implementação dessa interface que retorna um específico UUID.

Em seguida, seu código de teste poderia saber que UUID deve ser utilizado, e assertThat(actualUuid, is(expectedUuid)).

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=222659&siteId=1
Recomendado
Clasificación