From 2a54fe70dd7a24a857ca0d1582551723432a0251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Mon, 15 Feb 2021 14:39:43 +0800 Subject: [PATCH] mock context can be null --- .../java/com/alibaba/testable/core/util/InvokeRecordUtil.java | 4 ++++ .../java/com/alibaba/testable/core/util/MockContextUtil.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/InvokeRecordUtil.java b/testable-core/src/main/java/com/alibaba/testable/core/util/InvokeRecordUtil.java index 0ec0b27..1b82827 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/InvokeRecordUtil.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/util/InvokeRecordUtil.java @@ -22,6 +22,10 @@ public class InvokeRecordUtil { StackTraceElement mockMethodTraceElement = Thread.currentThread().getStackTrace()[INDEX_OF_TEST_CLASS]; String mockMethodName = mockMethodTraceElement.getMethodName(); MockContext mockContext = MockContextUtil.context.get(); + if (mockContext == null) { + // mock method not invoked from test case, e.g. in static block + return; + } String testClass = mockContext.testClassName; String testCaseName = mockContext.testCaseName; if (isConstructor) { diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/MockContextUtil.java b/testable-core/src/main/java/com/alibaba/testable/core/util/MockContextUtil.java index 7b0571f..c9855dc 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/MockContextUtil.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/util/MockContextUtil.java @@ -36,7 +36,8 @@ public class MockContextUtil { } public static Map parameters() { - return MockContextUtil.context.get().parameters; + MockContext mockContext = MockContextUtil.context.get(); + return mockContext == null ? new HashMap() : mockContext.parameters; } }