springboot 单元测试 私有方法
时间: 2023-07-09 09:37:09 浏览: 195
在 Spring Boot 中,我们可以使用 ReflectionTestUtils 类来访问和调用私有方法。具体步骤如下:
1. 在测试类中,使用 @Autowired 注解将待测试的类注入进来。
2. 使用 ReflectionTestUtils.setField() 方法,将需要测试的类中私有方法所需的属性注入进来。
3. 使用 ReflectionTestUtils.invokeMethod() 方法,调用私有方法并传入所需的参数。
下面是一个示例代码:
```
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyServiceTest {
@Autowired
private MyService myService;
@Test
public void testPrivateMethod() throws Exception {
String result = ReflectionTestUtils.invokeMethod(myService, "privateMethod", "test");
assertEquals("test", result);
}
}
```
在上面的示例中,我们通过 ReflectionTestUtils.invokeMethod() 方法调用了 MyService 类中的私有方法 privateMethod()。注意,第一个参数需要传入待测试的对象,第二个参数需要传入方法名,后面的参数是方法所需的参数。
值得注意的是,虽然 ReflectionTestUtils 可以访问和调用私有方法,但是这并不意味着我们应该经常使用它。私有方法通常是为了实现类的内部逻辑,不应该对外暴露。在编写测试时,我们应该测试类的公有方法,以确保类的行为符合我们的预期。
阅读全文