@Beta @GwtIncompatible public final class NullPointerTester extends Object
NullPointerException
or UnsupportedOperationException
whenever null
is passed to a parameter that isn't annotated with Nullable
.
The tested methods and constructors are invoked -- each time with one
parameter being null and the rest not null -- and the test fails if no
expected exception is thrown. NullPointerTester
uses best effort to
pick non-null default values for many common JDK and Guava types, and also
for interfaces and public classes that have public parameter-less
constructors. When the non-null default value for a particular parameter type
cannot be provided by NullPointerTester
, the caller can provide a
custom non-null default value for the parameter type via setDefault(java.lang.Class<T>, T)
.
Modifier and Type | Class and Description |
---|---|
static class |
NullPointerTester.Visibility
Visibility of any method or constructor.
|
Constructor and Description |
---|
NullPointerTester() |
Modifier and Type | Method and Description |
---|---|
NullPointerTester |
ignore(Constructor<?> constructor)
Ignore
constructor in the tests that follow. |
NullPointerTester |
ignore(Method method)
Ignore
method in the tests that follow. |
<T> NullPointerTester |
setDefault(Class<T> type,
T value)
Sets a default value that can be used for any parameter of type
type . |
void |
testAllPublicConstructors(Class<?> c)
Runs
testConstructor(java.lang.reflect.Constructor<?>) on every public constructor in class c . |
void |
testAllPublicInstanceMethods(Object instance)
Runs
testMethod(java.lang.Object, java.lang.reflect.Method) on every public instance method of the class of
instance , including those inherited from superclasses of the same
package. |
void |
testAllPublicStaticMethods(Class<?> c)
Runs
testMethod(java.lang.Object, java.lang.reflect.Method) on every public static method of class c ,
including those "inherited" from superclasses of the same package. |
void |
testConstructor(Constructor<?> ctor)
Verifies that
ctor produces a NullPointerException or
UnsupportedOperationException whenever any of its
non-Nullable parameters are null. |
void |
testConstructorParameter(Constructor<?> ctor,
int paramIndex)
Verifies that
ctor produces a NullPointerException or
UnsupportedOperationException when the parameter in position paramIndex is null. |
void |
testConstructors(Class<?> c,
NullPointerTester.Visibility minimalVisibility)
Runs
testConstructor(java.lang.reflect.Constructor<?>) on every constructor in class c that
has at least minimalVisibility . |
void |
testInstanceMethods(Object instance,
NullPointerTester.Visibility minimalVisibility)
Runs
testMethod(java.lang.Object, java.lang.reflect.Method) on every instance method of the class of
instance with at least minimalVisibility , including those
inherited from superclasses of the same package. |
void |
testMethod(Object instance,
Method method)
Verifies that
method produces a NullPointerException
or UnsupportedOperationException whenever any of its
non-Nullable parameters are null. |
void |
testMethodParameter(Object instance,
Method method,
int paramIndex)
Verifies that
method produces a NullPointerException or
UnsupportedOperationException when the parameter in position paramIndex is null. |
void |
testStaticMethods(Class<?> c,
NullPointerTester.Visibility minimalVisibility)
Runs
testMethod(java.lang.Object, java.lang.reflect.Method) on every static method of class c that has
at least minimalVisibility , including those "inherited" from
superclasses of the same package. |
public <T> NullPointerTester setDefault(Class<T> type, T value)
type
. Returns this object.public NullPointerTester ignore(Method method)
method
in the tests that follow. Returns this object.public NullPointerTester ignore(Constructor<?> constructor)
constructor
in the tests that follow. Returns this object.public void testConstructors(Class<?> c, NullPointerTester.Visibility minimalVisibility)
testConstructor(java.lang.reflect.Constructor<?>)
on every constructor in class c
that
has at least minimalVisibility
.public void testAllPublicConstructors(Class<?> c)
testConstructor(java.lang.reflect.Constructor<?>)
on every public constructor in class c
.public void testStaticMethods(Class<?> c, NullPointerTester.Visibility minimalVisibility)
testMethod(java.lang.Object, java.lang.reflect.Method)
on every static method of class c
that has
at least minimalVisibility
, including those "inherited" from
superclasses of the same package.public void testAllPublicStaticMethods(Class<?> c)
testMethod(java.lang.Object, java.lang.reflect.Method)
on every public static method of class c
,
including those "inherited" from superclasses of the same package.public void testInstanceMethods(Object instance, NullPointerTester.Visibility minimalVisibility)
testMethod(java.lang.Object, java.lang.reflect.Method)
on every instance method of the class of
instance
with at least minimalVisibility
, including those
inherited from superclasses of the same package.public void testAllPublicInstanceMethods(Object instance)
testMethod(java.lang.Object, java.lang.reflect.Method)
on every public instance method of the class of
instance
, including those inherited from superclasses of the same
package.public void testMethod(@Nullable Object instance, Method method)
method
produces a NullPointerException
or UnsupportedOperationException
whenever any of its
non-Nullable
parameters are null.instance
- the instance to invoke method
on, or null if
method
is staticpublic void testConstructor(Constructor<?> ctor)
ctor
produces a NullPointerException
or
UnsupportedOperationException
whenever any of its
non-Nullable
parameters are null.public void testMethodParameter(@Nullable Object instance, Method method, int paramIndex)
method
produces a NullPointerException
or
UnsupportedOperationException
when the parameter in position paramIndex
is null. If this parameter is marked Nullable
, this
method does nothing.instance
- the instance to invoke method
on, or null if
method
is staticpublic void testConstructorParameter(Constructor<?> ctor, int paramIndex)
ctor
produces a NullPointerException
or
UnsupportedOperationException
when the parameter in position paramIndex
is null. If this parameter is marked Nullable
, this
method does nothing.Copyright © 2010–2017. All rights reserved.