diff --git a/oneflow/python/test/modules/automated_test_util.py b/oneflow/python/test/modules/automated_test_util.py
index 0459756ab4acd4b02673c3d317a345be76428956..7359cf3f7e4735fe45df2597dddeaf2015993cb4 100644
--- a/oneflow/python/test/modules/automated_test_util.py
+++ b/oneflow/python/test/modules/automated_test_util.py
@@ -174,13 +174,29 @@ def test_against_pytorch(
     else:
         pytorch_call = eval(f"torch.{pytorch_callable_name}")
 
+    Spec = namedtuple(
+        "spec",
+        "args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations",
+    )
+
     if has_full_args_spec(pytorch_call):
-        spec = inspect.getfullargspec(pytorch_call)
-    else:
-        Spec = namedtuple(
-            "spec",
-            "args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations",
+        tmp_spec = inspect.getfullargspec(pytorch_call)
+        new_defaults = tmp_spec.defaults
+        if new_defaults is None:
+            new_defaults = []
+        new_kwonlydefaults = tmp_spec.kwonlydefaults
+        if new_kwonlydefaults is None:
+            new_kwonlydefaults = []
+        spec = Spec(
+            tmp_spec.args,
+            tmp_spec.varargs,
+            tmp_spec.varkw,
+            new_defaults,
+            tmp_spec.kwonlyargs,
+            new_kwonlydefaults,
+            tmp_spec.annotations,
         )
+    else:
         args = list(extra_annotations.keys()) + list(extra_defaults.keys())
         spec = Spec(args, None, None, [], [], {}, {})
 
diff --git a/oneflow/python/test/modules/test_constantpad2d.py b/oneflow/python/test/modules/test_constantpad2d.py
index a29e7c96ad4671b843367aac4803c14adf1d44eb..4f351ab8a92a2925b06b9ecb4541459558ff578c 100644
--- a/oneflow/python/test/modules/test_constantpad2d.py
+++ b/oneflow/python/test/modules/test_constantpad2d.py
@@ -19,6 +19,7 @@ from collections import OrderedDict
 import numpy as np
 
 import oneflow.experimental as flow
+from automated_test_util import *
 from test_util import (
     GenArgList,
     FlattenArray,
@@ -111,6 +112,23 @@ class TestConstantPad2dModule(flow.unittest.TestCase):
         for arg in GenArgList(arg_dict):
             _test_ConstantPad2d(test_case, *arg)
 
+    def test_with_random_data(test_case):
+        for device in ["cpu", "cuda"]:
+            spatial_size = np.random.randint(10, 20)
+            test_module_against_pytorch(
+                test_case,
+                "nn.ConstantPad2d",
+                extra_annotations={"padding": int, "value": float},
+                extra_generators={
+                    "input": random_tensor(
+                        ndim=4, dim2=spatial_size, dim3=spatial_size
+                    ),
+                    "padding": random(0, 6),
+                    "value": random(0, 6),
+                },
+                device=device,
+            )
+
 
 if __name__ == "__main__":
     unittest.main()