Agreed, but the following (inside tests) does not work in all cases, i.e.

Region<String, String> region...

Particularly if "region" is passed to a method with a different type
signature.

I am trying to find/think of the situation I encounter from time to time,
even when I use the *wildcard* signature (i.e. Region<?, ?>), but cannot
currently find it (*#ugh*).

Anyway, the point is, if the test is really not concerned with the type of
values (*keys*, *values*) being stored in the mock *Region* then rawtypes (or
sometimes Region<?, ?>) are useful in some cases since the point of the
test is not about the data but perhaps about *Region* configuration in
general, so adding types detracts (adds undue noise) to the code under test
(IMO).

It depends and is subjective.

I agree, though, in general, @SuppressWarnings should be kept to a minimum
and used only when necessary.

-j

On Fri, May 8, 2020 at 1:09 PM Kirk Lund <kl...@apache.org> wrote:

> Actually there is an alternative to using @SuppressWarnings for Mockito
> mocks:
>
> Region<String, String> region = cast(mock(Region.class));
>
> private static <T> T cast(Object object) {
>   return (T) object;
> }
>
> Personally, I'd prefer to see warnings or workarounds like above than see
> lots of @SuppressWarnings littered throughout our code base. I think it's a
> smell of bad code.
>
> On Fri, May 8, 2020 at 12:44 PM Jacob Barrett <jbarr...@pivotal.io> wrote:
>
> >
> >
> > > On May 8, 2020, at 12:41 PM, Donal Evans <doev...@pivotal.io> wrote:
> > >
> > > Is there a consensus on what constitutes a benign warning? I think the
> > only
> > > times I use @SuppressWarnings is in parameterized tests to suppress the
> > > unused method warning for the parameters method, or for unchecked
> casts,
> > as
> > > below:
> > >
> > > PartitionedRegion detailRegion1 = mock(PartitionedRegion.class);
> > > when(cache.getRegion(regionPath1)).thenReturn(detailRegion1);
> > >
> > > where the thenReturn() would complain, since it's expecting to return a
> > > Region<Object, Object>.
> > >
> > > Would these be considered things that could safely just be ignored (and
> > so
> > > for which I can turn off inspection), or is the use of
> @SuppressWarnings
> > > here warranted?
> >
> > This is a legitimate suppression. There is no other way to correct the
> > dysfunctional nature of Java Generics than to @SuppressWarnings. In this
> > case though only that statement should be suppressed.
> >
> > -Jake
> >
> >
>


-- 
-John
Spring Data Team

Reply via email to