Class NullPointerTester


  • @GwtIncompatible
    @NullMarked
    public final class NullPointerTester
    extends java.lang.Object
    A test utility that verifies that your methods and constructors throw NullPointerException or UnsupportedOperationException whenever null is passed to a parameter whose declaration or type isn't annotated with an annotation with the simple name Nullable, CheckForNull, NullableType, or 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 by NullPointerTester, the caller can provide a custom non-null default value for the parameter type via setDefault(java.lang.Class<T>, T).

    Since:
    10.0
    Author:
    Kevin Bourrillion
    • Method Detail

      • setDefault

        @CanIgnoreReturnValue
        public <T> NullPointerTester setDefault​(java.lang.Class<T> type,
                                                T value)
        Sets a default value that can be used for any parameter of type type. Returns this object.
      • ignore

        @CanIgnoreReturnValue
        public NullPointerTester ignore​(java.lang.reflect.Method method)
        Ignore method in the tests that follow. Returns this object.
        Since:
        13.0
      • ignore

        @CanIgnoreReturnValue
        public NullPointerTester ignore​(java.lang.reflect.Constructor<?> constructor)
        Ignore constructor in the tests that follow. Returns this object.
        Since:
        22.0
      • testMethod

        public void testMethod​(@Nullable java.lang.Object instance,
                               java.lang.reflect.Method method)
        Verifies that method produces a NullPointerException or UnsupportedOperationException whenever any of its non-nullable parameters are null.
        Parameters:
        instance - the instance to invoke method on, or null if method is static
      • testConstructor

        public void testConstructor​(java.lang.reflect.Constructor<?> ctor)
        Verifies that ctor produces a NullPointerException or UnsupportedOperationException whenever any of its non-nullable parameters are null.
      • testMethodParameter

        public void testMethodParameter​(@Nullable java.lang.Object instance,
                                        java.lang.reflect.Method method,
                                        int paramIndex)
        Verifies that method produces a NullPointerException or UnsupportedOperationException when the parameter in position paramIndex is null. If this parameter is marked nullable, this method does nothing.
        Parameters:
        instance - the instance to invoke method on, or null if method is static
      • testConstructorParameter

        public void testConstructorParameter​(java.lang.reflect.Constructor<?> ctor,
                                             int paramIndex)
        Verifies that ctor produces a NullPointerException or UnsupportedOperationException when the parameter in position paramIndex is null. If this parameter is marked nullable, this method does nothing.