diff --git a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java
index 53f9b164389e1cf53ba6ab1a85ab338465125619..d6968a999a3e2e6d1e509c4d36989daa31247ef1 100644
--- a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java
+++ b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java
@@ -255,9 +255,11 @@ public class CodeTester {
                                String className,
                                Object... params) throws
                   BaseTester.FailedTestException {
-        Class<?>[] parameterTypes
-            = Stream.of(params).map(p -> p.getClass())
-                               .toArray(Class<?>[]::new);
+
+        Class<?>[] parameterTypes = Stream.of(params).map(
+            p -> p != null ? p.getClass() : NullType.class
+        ).toArray(Class<?>[]::new);
+
         try {
             Class<?> klass = loadClass(className);
             Constructor<?> constructor
@@ -637,7 +639,10 @@ public class CodeTester {
      * dependencies..
      */
     private boolean isAssignable(Class<?> k1, Class<?> k2) {
-        return boxClass(k1).isAssignableFrom(boxClass(k2));
+        if (k2 == NullType.class)
+            return true;
+        else
+            return boxClass(k1).isAssignableFrom(boxClass(k2));
     }
 
     /**
@@ -994,4 +999,9 @@ public class CodeTester {
         else
             return logIdealizer.apply(output);
     }
+
+    /**
+     * A class to represent a null argument which can be any object type
+     */
+    private class NullType { }
 }