Skip to content

Commit 85d280e

Browse files
committed
test:migrate JUnit 4 + PowerMock to JUnit 5 + Mockito in logger-admin,opentelemetry modules
1 parent 255b016 commit 85d280e

File tree

8 files changed

+117
-109
lines changed

8 files changed

+117
-109
lines changed

trpc-logger/trpc-logger-admin/src/test/java/com/tencent/trpc/logger/admin/Log4j2LoggerProcessUnitTest.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,17 @@
1313

1414
import com.tencent.trpc.core.logger.LoggerLevel;
1515
import org.apache.logging.log4j.core.config.LoggerConfig;
16-
import org.junit.Assert;
17-
import org.junit.Before;
18-
import org.junit.Rule;
19-
import org.junit.Test;
20-
import org.junit.rules.ExpectedException;
16+
import org.junit.jupiter.api.Assertions;
17+
import org.junit.jupiter.api.BeforeEach;
18+
import org.junit.jupiter.api.Test;
2119

2220
public class Log4j2LoggerProcessUnitTest {
2321

2422
public static final String UNIT_TEST = "unit-test";
25-
23+
2624
private Log4j2LoggerProcessUnit log4j2LoggerProcessUnit;
27-
@Rule
28-
public ExpectedException expectedEx = ExpectedException.none();
2925

30-
@Before
26+
@BeforeEach
3127
public void setUp() throws Exception {
3228
log4j2LoggerProcessUnit = new Log4j2LoggerProcessUnit();
3329
}
@@ -41,7 +37,7 @@ public void testInit() {
4137
public void testSetLogger() {
4238
log4j2LoggerProcessUnit.addLogger(UNIT_TEST, new LoggerConfig());
4339
String logger = log4j2LoggerProcessUnit.setLoggerLevel(UNIT_TEST, LoggerLevel.ALL);
44-
Assert.assertEquals(logger, "ERROR");
40+
Assertions.assertEquals(logger, "ERROR");
4541
}
4642

47-
}
43+
}

trpc-logger/trpc-logger-admin/src/test/java/com/tencent/trpc/logger/admin/LogbackLoggerProcessUnitTest.java

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,38 +11,31 @@
1111

1212
package com.tencent.trpc.logger.admin;
1313

14-
import static org.powermock.api.mockito.PowerMockito.mockStatic;
15-
import static org.powermock.api.mockito.PowerMockito.when;
14+
import static org.mockito.Mockito.when;
1615

1716
import ch.qos.logback.classic.Logger;
1817
import ch.qos.logback.classic.LoggerContext;
1918
import com.tencent.trpc.core.logger.LoggerLevel;
2019
import com.tencent.trpc.core.logger.slf4j.Slf4jLogger;
21-
import org.junit.Assert;
22-
import org.junit.Before;
23-
import org.junit.Rule;
24-
import org.junit.Test;
25-
import org.junit.rules.ExpectedException;
26-
import org.junit.runner.RunWith;
27-
import org.powermock.core.classloader.annotations.PrepareForTest;
28-
import org.powermock.modules.junit4.PowerMockRunner;
20+
import org.junit.jupiter.api.Assertions;
21+
import org.junit.jupiter.api.BeforeEach;
22+
import org.junit.jupiter.api.Test;
23+
import static org.junit.jupiter.api.Assertions.assertThrows;
24+
import static org.junit.jupiter.api.Assertions.assertTrue;
2925
import org.slf4j.LoggerFactory;
3026
import java.util.List;
27+
import org.mockito.MockedStatic;
28+
import org.mockito.Mockito;
3129

32-
@RunWith(PowerMockRunner.class)
33-
@PrepareForTest({LoggerFactory.class})
3430
public class LogbackLoggerProcessUnitTest {
3531

3632
public static final String LOGGER = "logger";
3733
public static final String LOGGER_ROOT = "ROOT";
3834
public static final String LOGGER_DEBUG = "DEBUG";
3935

40-
@Rule
41-
public ExpectedException expectedEx = ExpectedException.none();
42-
4336
private LogbackLoggerProcessUnit logger;
4437

45-
@Before
38+
@BeforeEach
4639
public void setUp() throws Exception {
4740
logger = new LogbackLoggerProcessUnit();
4841
logger.setLoggerLevel(LOGGER, LoggerLevel.ALL);
@@ -51,38 +44,38 @@ public void setUp() throws Exception {
5144

5245
@Test
5346
public void testInit() {
54-
expectedEx.expect(ClassCastException.class);
55-
expectedEx.expectMessage("cannot be cast");
56-
logger.init();
47+
ClassCastException exception = assertThrows(ClassCastException.class,
48+
() -> logger.init());
49+
assertTrue(exception.getMessage().contains("cannot be cast"));
5750
}
5851

5952
@Test
60-
@PrepareForTest({LoggerFactory.class})
6153
public void testInitSuccess() {
62-
mockStatic(LoggerFactory.class);
63-
when(LoggerFactory.getILoggerFactory()).thenReturn(new LoggerContext());
64-
logger.init();
54+
try (MockedStatic<LoggerFactory> mockedLoggerFactory = Mockito.mockStatic(LoggerFactory.class)) {
55+
when(LoggerFactory.getILoggerFactory()).thenReturn(new LoggerContext());
56+
logger.init();
57+
}
6558
}
6659

6760
@Test
6861
public void testGetLoggerLevelInfoByError() {
69-
expectedEx.expect(ClassCastException.class);
70-
expectedEx.expectMessage("cannot be cast");
71-
Assert.assertNotNull(logger.getLoggerLevelInfo());
62+
ClassCastException exception = assertThrows(ClassCastException.class,
63+
() -> logger.getLoggerLevelInfo());
64+
assertTrue(exception.getMessage().contains("cannot be cast"));
7265
}
7366

7467
@Test
7568
public void testGetLoggerLevelInfo() {
7669
addLoggerToUnit();
7770
List<LoggerLevelInfo> info = logger.getLoggerLevelInfo();
78-
Assert.assertNotNull(info);
71+
Assertions.assertNotNull(info);
7972
}
8073

8174
@Test
8275
public void testSetLogger() {
8376
addLoggerToUnit();
8477
String loggerLevel = logger.setLoggerLevel(LOGGER, LoggerLevel.ALL);
85-
Assert.assertEquals(LOGGER_DEBUG, loggerLevel);
78+
Assertions.assertEquals(LOGGER_DEBUG, loggerLevel);
8679
}
8780

8881
private void addLoggerToUnit() {
@@ -91,4 +84,4 @@ private void addLoggerToUnit() {
9184
this.logger.addLogger(LOGGER, logger);
9285
}
9386

94-
}
87+
}

trpc-logger/trpc-logger-admin/src/test/java/com/tencent/trpc/logger/admin/LoggerLevelInfoTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
package com.tencent.trpc.logger.admin;
1313

1414
import com.tencent.trpc.core.logger.LoggerLevel;
15-
import org.junit.Assert;
16-
import org.junit.Before;
17-
import org.junit.Test;
15+
import org.junit.jupiter.api.Assertions;
16+
import org.junit.jupiter.api.BeforeEach;
17+
import org.junit.jupiter.api.Test;
1818

1919
public class LoggerLevelInfoTest {
2020

2121
private LoggerLevelInfo loggerLevelInfo;
2222

23-
@Before
23+
@BeforeEach
2424
public void setUp() {
2525
loggerLevelInfo = new LoggerLevelInfo();
2626
loggerLevelInfo.setLoggerName("logger");
@@ -29,17 +29,17 @@ public void setUp() {
2929

3030
@Test
3131
public void testGetLoggerName() {
32-
Assert.assertEquals("logger", loggerLevelInfo.getLoggerName());
32+
Assertions.assertEquals("logger", loggerLevelInfo.getLoggerName());
3333
}
3434

3535
@Test
3636
public void testGetLevel() {
37-
Assert.assertEquals(LoggerLevel.ALL.name(), loggerLevelInfo.getLevel());
37+
Assertions.assertEquals(LoggerLevel.ALL.name(), loggerLevelInfo.getLevel());
3838
}
3939

4040
@Test
4141
public void testTestToString() {
42-
Assert.assertTrue(loggerLevelInfo.toString().contains("LoggerLevelInfo"));
42+
Assertions.assertTrue(loggerLevelInfo.toString().contains("LoggerLevelInfo"));
4343
}
4444

45-
}
45+
}

trpc-logger/trpc-logger-admin/src/test/java/com/tencent/trpc/logger/admin/LoggerManagerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import com.tencent.trpc.core.logger.LoggerLevel;
1515
import java.util.List;
16-
import org.junit.Test;
16+
import org.junit.jupiter.api.Test;
1717

1818
public class LoggerManagerTest {
1919

Lines changed: 52 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,73 @@
11
package com.tencent.trpc.logger.admin;
22

3-
import static org.junit.Assert.assertNotNull;
4-
import static org.junit.Assert.assertTrue;
3+
import static org.junit.jupiter.api.Assertions.assertNotNull;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
55

66
import ch.qos.logback.classic.LoggerContext;
7-
import org.apache.logging.slf4j.Log4jLoggerFactory;
8-
import org.junit.Test;
9-
import org.junit.runner.RunWith;
10-
import org.powermock.api.mockito.PowerMockito;
11-
import org.powermock.core.classloader.annotations.PrepareForTest;
12-
import org.powermock.modules.junit4.PowerMockRunner;
7+
import java.lang.reflect.Field;
8+
import org.junit.jupiter.api.AfterEach;
9+
import org.junit.jupiter.api.BeforeEach;
10+
import org.junit.jupiter.api.Test;
1311
import org.slf4j.LoggerFactory;
1412
import org.slf4j.helpers.NOPLoggerFactory;
13+
import org.mockito.MockedStatic;
14+
import org.mockito.Mockito;
1515

16-
@RunWith(PowerMockRunner.class)
1716
public class LoggerProcessUnitFactoryTest {
1817

18+
@BeforeEach
19+
public void setUp() throws Exception {
20+
resetLoggerProcessUnit();
21+
}
22+
23+
@AfterEach
24+
public void tearDown() throws Exception {
25+
resetLoggerProcessUnit();
26+
}
27+
28+
/**
29+
* 通过反射重置 LoggerProcessUnitFactory 的静态变量
30+
*/
31+
private void resetLoggerProcessUnit() throws Exception {
32+
Field field = LoggerProcessUnitFactory.class.getDeclaredField("loggerProcessUnit");
33+
field.setAccessible(true);
34+
field.set(null, null);
35+
}
36+
1937
@Test
20-
@PrepareForTest({LoggerFactory.class})
2138
public void testGetGetLoggerProcessUnit() {
22-
PowerMockito.mockStatic(LoggerFactory.class);
23-
PowerMockito.when(LoggerFactory.getILoggerFactory()).thenReturn(new Log4jLoggerFactory());
24-
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
25-
assertNotNull(log);
26-
assertTrue(log instanceof Log4j2LoggerProcessUnit);
39+
try (MockedStatic<LoggerFactory> mockedLoggerFactory = Mockito.mockStatic(LoggerFactory.class);
40+
MockedStatic<LoggerFactoryEnum> mockedEnum = Mockito.mockStatic(LoggerFactoryEnum.class)) {
41+
// 模拟 LoggerFactoryEnum.getLoggerFactoryEnum 返回 LOG4J2_FACTORY
42+
mockedLoggerFactory.when(LoggerFactory::getILoggerFactory).thenReturn(new NOPLoggerFactory());
43+
mockedEnum.when(() -> LoggerFactoryEnum.getLoggerFactoryEnum(Mockito.anyString()))
44+
.thenReturn(LoggerFactoryEnum.LOG4J2_FACTORY);
45+
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
46+
assertNotNull(log);
47+
assertTrue(log instanceof Log4j2LoggerProcessUnit);
48+
}
2749
}
2850

29-
3051
@Test
31-
@PrepareForTest({LoggerFactory.class})
3252
public void testLogback() {
33-
PowerMockito.mockStatic(LoggerFactory.class);
34-
PowerMockito.when(LoggerFactory.getILoggerFactory()).thenReturn(new LoggerContext());
35-
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
36-
assertNotNull(log);
37-
assertTrue(log instanceof LogbackLoggerProcessUnit);
38-
log = LoggerProcessUnitFactory.getLoggerProcessUnit();
39-
assertNotNull(log);
53+
try (MockedStatic<LoggerFactory> mockedLoggerFactory = Mockito.mockStatic(LoggerFactory.class)) {
54+
mockedLoggerFactory.when(LoggerFactory::getILoggerFactory).thenReturn(new LoggerContext());
55+
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
56+
assertNotNull(log);
57+
assertTrue(log instanceof LogbackLoggerProcessUnit);
58+
log = LoggerProcessUnitFactory.getLoggerProcessUnit();
59+
assertNotNull(log);
60+
}
4061
}
4162

4263
@Test
43-
@PrepareForTest({LoggerFactory.class})
4464
public void testUnSupport() {
45-
PowerMockito.mockStatic(LoggerFactory.class);
46-
PowerMockito.when(LoggerFactory.getILoggerFactory()).thenReturn(new NOPLoggerFactory());
47-
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
48-
assertNotNull(log);
49-
assertTrue(log instanceof UnSupportLoggerProcessUnit);
65+
try (MockedStatic<LoggerFactory> mockedLoggerFactory = Mockito.mockStatic(LoggerFactory.class)) {
66+
mockedLoggerFactory.when(LoggerFactory::getILoggerFactory).thenReturn(new NOPLoggerFactory());
67+
LoggerProcessUnit log = LoggerProcessUnitFactory.getLoggerProcessUnit();
68+
assertNotNull(log);
69+
assertTrue(log instanceof UnSupportLoggerProcessUnit);
70+
}
5071
}
5172

52-
}
73+
}

trpc-logger/trpc-logger-admin/src/test/java/com/tencent/trpc/logger/admin/UnSupportLoggerProcessUnitTest.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,17 @@
1212
package com.tencent.trpc.logger.admin;
1313

1414
import com.tencent.trpc.core.logger.LoggerLevel;
15-
import org.junit.Before;
16-
import org.junit.Rule;
17-
import org.junit.Test;
18-
import org.junit.rules.ExpectedException;
15+
import org.junit.jupiter.api.BeforeEach;
16+
import org.junit.jupiter.api.Test;
1917

20-
public class UnSupportLoggerProcessUnitTest {
18+
import static org.junit.jupiter.api.Assertions.assertEquals;
19+
import static org.junit.jupiter.api.Assertions.assertThrows;
2120

22-
@Rule
23-
public ExpectedException expectedEx = ExpectedException.none();
21+
public class UnSupportLoggerProcessUnitTest {
2422

2523
private UnSupportLoggerProcessUnit unSupportLoggerProcessUnit;
2624

27-
@Before
25+
@BeforeEach
2826
public void setUp() {
2927
unSupportLoggerProcessUnit = new UnSupportLoggerProcessUnit();
3028
}
@@ -36,23 +34,23 @@ public void testInit() {
3634

3735
@Test
3836
public void testGetLoggers() {
39-
expectedEx.expect(UnsupportedOperationException.class);
40-
expectedEx.expectMessage("Current log frame doesn't support this operation!");
41-
unSupportLoggerProcessUnit.getLoggers();
37+
UnsupportedOperationException exception = assertThrows(UnsupportedOperationException.class,
38+
() -> unSupportLoggerProcessUnit.getLoggers());
39+
assertEquals("Current log frame doesn't support this operation!", exception.getMessage());
4240
}
4341

4442
@Test
4543
public void testGetLoggerLevelInfo() {
46-
expectedEx.expect(UnsupportedOperationException.class);
47-
expectedEx.expectMessage("Current log frame doesn't support this operation!");
48-
unSupportLoggerProcessUnit.getLoggerLevelInfo();
44+
UnsupportedOperationException exception = assertThrows(UnsupportedOperationException.class,
45+
() -> unSupportLoggerProcessUnit.getLoggerLevelInfo());
46+
assertEquals("Current log frame doesn't support this operation!", exception.getMessage());
4947
}
5048

5149
@Test
5250
public void testSetLoggerLevel() {
53-
expectedEx.expect(UnsupportedOperationException.class);
54-
expectedEx.expectMessage("Current log frame doesn't support this operation!");
55-
unSupportLoggerProcessUnit.setLoggerLevel("a", LoggerLevel.ALL);
51+
UnsupportedOperationException exception = assertThrows(UnsupportedOperationException.class,
52+
() -> unSupportLoggerProcessUnit.setLoggerLevel("a", LoggerLevel.ALL));
53+
assertEquals("Current log frame doesn't support this operation!", exception.getMessage());
5654
}
5755

58-
}
56+
}

trpc-opentelemetry/src/test/java/com/tencent/trpc/opentelemetry/OpenTelemetryFactoryTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import io.opentelemetry.api.GlobalOpenTelemetry;
1818
import java.util.HashMap;
1919
import java.util.Map;
20-
import org.junit.Assert;
21-
import org.junit.Test;
20+
import org.junit.jupiter.api.Assertions;
21+
import org.junit.jupiter.api.Test;
2222

2323
public class OpenTelemetryFactoryTest {
2424

@@ -32,7 +32,7 @@ public void factoryInitTest() {
3232
ExtensionLoader.registerPlugin(pluginConfig);
3333
OpenTelemetryFactory factory = (OpenTelemetryFactory) ExtensionLoader.getExtensionLoader(
3434
TelemetryFactory.class).getExtension(OpenTelemetryFactory.NAME);
35-
Assert.assertNotNull(factory);
35+
Assertions.assertNotNull(factory);
3636
}
3737

3838
}

0 commit comments

Comments
 (0)