google/truth

Wanted: Truth8Junit to support Java 8 types with assume()

kaibolay opened this issue · 3 comments

I found myself wanting to use a java.util.Optional with TruthJunit.assume():

    assume().that(javaUtilOptional).isPresent();

Unfortunately this doesn't work, since TruthJunit doesn't support Java 8 types. Hence this feature request: It's be nice to have a Truth8Junit (analogous to Truth8) to fill this gap.

You can do this with:

import static com.google.common.truth.OptionalSubject.optionals;

assume().about(optionals()).that(javaUtilOptional).isPresent();

This is somewhat documented in https://truth.dev/faq#full-chain, but we were just recently discussing that we should mention it in https://truth.dev/faq#missing-import, too.

The longer-term plan is to make support for java.util.Optional part of core Truth (#746) as part of dropping support for Java 7.

Sorry that it's confusing and verbose in the meantime.

Thanks!

That workaround is certainly better than what I did:

assume().that(javaUtilOptional.isPresent()).isTrue();

Looking forward to #746,

Belatedly closing, given that #746 was resolved in Truth 1.4.2.