Package com.google.common.testing
Class NullPointerTester
- java.lang.Object
-
- com.google.common.testing.NullPointerTester
-
@Beta @GwtIncompatible public final class NullPointerTester extends java.lang.Object
A test utility that verifies that your methods and constructors throwNullPointerException
orUnsupportedOperationException
whenever null is passed to a parameter that isn't annotated withNullable
,CheckForNull
, ororg.checkerframework.checker.nullness.compatqual.NullableDecl
.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 byNullPointerTester
, the caller can provide a custom non-null default value for the parameter type viasetDefault(java.lang.Class<T>, T)
.- Since:
- 10.0
- Author:
- Kevin Bourrillion
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NullPointerTester.Visibility
Visibility of any method or constructor.
-
Constructor Summary
Constructors Constructor Description NullPointerTester()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NullPointerTester
ignore(java.lang.reflect.Constructor<?> constructor)
Ignoreconstructor
in the tests that follow.NullPointerTester
ignore(java.lang.reflect.Method method)
Ignoremethod
in the tests that follow.<T> NullPointerTester
setDefault(java.lang.Class<T> type, T value)
Sets a default value that can be used for any parameter of typetype
.void
testAllPublicConstructors(java.lang.Class<?> c)
RunstestConstructor(java.lang.reflect.Constructor<?>)
on every public constructor in classc
.void
testAllPublicInstanceMethods(java.lang.Object instance)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every public instance method of the class ofinstance
, including those inherited from superclasses of the same package.void
testAllPublicStaticMethods(java.lang.Class<?> c)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every public static method of classc
, including those "inherited" from superclasses of the same package.void
testConstructor(java.lang.reflect.Constructor<?> ctor)
Verifies thatctor
produces aNullPointerException
orUnsupportedOperationException
whenever any of its non-nullable parameters are null.void
testConstructorParameter(java.lang.reflect.Constructor<?> ctor, int paramIndex)
Verifies thatctor
produces aNullPointerException
orUnsupportedOperationException
when the parameter in positionparamIndex
is null.void
testConstructors(java.lang.Class<?> c, NullPointerTester.Visibility minimalVisibility)
RunstestConstructor(java.lang.reflect.Constructor<?>)
on every constructor in classc
that has at leastminimalVisibility
.void
testInstanceMethods(java.lang.Object instance, NullPointerTester.Visibility minimalVisibility)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every instance method of the class ofinstance
with at leastminimalVisibility
, including those inherited from superclasses of the same package.void
testMethod(java.lang.Object instance, java.lang.reflect.Method method)
Verifies thatmethod
produces aNullPointerException
orUnsupportedOperationException
whenever any of its non-nullable parameters are null.void
testMethodParameter(java.lang.Object instance, java.lang.reflect.Method method, int paramIndex)
Verifies thatmethod
produces aNullPointerException
orUnsupportedOperationException
when the parameter in positionparamIndex
is null.void
testStaticMethods(java.lang.Class<?> c, NullPointerTester.Visibility minimalVisibility)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every static method of classc
that has at leastminimalVisibility
, including those "inherited" from superclasses of the same package.
-
-
-
Constructor Detail
-
NullPointerTester
public NullPointerTester()
-
-
Method Detail
-
setDefault
public <T> NullPointerTester setDefault(java.lang.Class<T> type, T value)
Sets a default value that can be used for any parameter of typetype
. Returns this object.
-
ignore
public NullPointerTester ignore(java.lang.reflect.Method method)
Ignoremethod
in the tests that follow. Returns this object.- Since:
- 13.0
-
ignore
public NullPointerTester ignore(java.lang.reflect.Constructor<?> constructor)
Ignoreconstructor
in the tests that follow. Returns this object.- Since:
- 22.0
-
testConstructors
public void testConstructors(java.lang.Class<?> c, NullPointerTester.Visibility minimalVisibility)
RunstestConstructor(java.lang.reflect.Constructor<?>)
on every constructor in classc
that has at leastminimalVisibility
.
-
testAllPublicConstructors
public void testAllPublicConstructors(java.lang.Class<?> c)
RunstestConstructor(java.lang.reflect.Constructor<?>)
on every public constructor in classc
.
-
testStaticMethods
public void testStaticMethods(java.lang.Class<?> c, NullPointerTester.Visibility minimalVisibility)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every static method of classc
that has at leastminimalVisibility
, including those "inherited" from superclasses of the same package.
-
testAllPublicStaticMethods
public void testAllPublicStaticMethods(java.lang.Class<?> c)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every public static method of classc
, including those "inherited" from superclasses of the same package.
-
testInstanceMethods
public void testInstanceMethods(java.lang.Object instance, NullPointerTester.Visibility minimalVisibility)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every instance method of the class ofinstance
with at leastminimalVisibility
, including those inherited from superclasses of the same package.
-
testAllPublicInstanceMethods
public void testAllPublicInstanceMethods(java.lang.Object instance)
RunstestMethod(java.lang.Object, java.lang.reflect.Method)
on every public instance method of the class ofinstance
, including those inherited from superclasses of the same package.
-
testMethod
public void testMethod(java.lang.Object instance, java.lang.reflect.Method method)
Verifies thatmethod
produces aNullPointerException
orUnsupportedOperationException
whenever any of its non-nullable parameters are null.- Parameters:
instance
- the instance to invokemethod
on, or null ifmethod
is static
-
testConstructor
public void testConstructor(java.lang.reflect.Constructor<?> ctor)
Verifies thatctor
produces aNullPointerException
orUnsupportedOperationException
whenever any of its non-nullable parameters are null.
-
testMethodParameter
public void testMethodParameter(java.lang.Object instance, java.lang.reflect.Method method, int paramIndex)
Verifies thatmethod
produces aNullPointerException
orUnsupportedOperationException
when the parameter in positionparamIndex
is null. If this parameter is marked nullable, this method does nothing.- Parameters:
instance
- the instance to invokemethod
on, or null ifmethod
is static
-
testConstructorParameter
public void testConstructorParameter(java.lang.reflect.Constructor<?> ctor, int paramIndex)
Verifies thatctor
produces aNullPointerException
orUnsupportedOperationException
when the parameter in positionparamIndex
is null. If this parameter is marked nullable, this method does nothing.
-
-