JUnitの中にUUIDをアサート

サーウ:

私は、オブジェクトを構築し、それを返すメソッドを持っています。

その分野の一つとして、UUIDなどのオブジェクト。オブジェクトを構築しながら、ランダムなUUIDが生成されます。ここでは、コードは次のようになります。

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

ここに私のテストでは、次のとおりです。

@Test
public void shouldVerifyIfTheMetaDataIsBuild() {

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

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

場合、私はちょうど検証してるcorrelationIdnullではありませんか。確認するためのより良い方法はありますかUUID

GhostCat敬礼モニカC.:

現在の生産コードを検証する唯一の方法は、はい、CorrelationIDがnullでないことを確認することです。また、予想される文字列のレイアウトが有効なUUID文字列と一致していることを確認できました。

あなたがより良いチェックのビットにしたいときもちろん、あなたは単純に交換する必要がありUUID.randomUUID().toString()、あなたができることを何かで制御します

たとえば、あなたが作成することができますUUIDGenerator作成するデフォルトの方法で、インタフェースをランダムあなたのコードに示すように、UUIDを。しかし、あなたのテストのセットアップでは、あなたの代わりに返すインタフェースの実装を提供特定の UUIDを。

次に、あなたのテストコードは、可能性が知っている UUIDが使用されるべきである、とassertThat(actualUuid, is(expectedUuid))

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222660&siteId=1