gpt4 book ai didi

spring-boot - 如何在服务测试类中模拟@Autowired HttpServletRequest?

转载 作者:行者123 更新时间:2023-12-04 15:38:52 24 4
gpt4 key购买 nike

在我的服务类中,我有 @Autowired HttpServletRequest 并在我的服务方法中使用相同的对象,但是对于该服务方法测试类,我无法在我的测试方法中模拟 HttpServletRequest 对象,请检查下面的代码。我收到请求对象的空指针异常

    @Component("someServiceClass")
public class SomeServiceClassImpl implements SomeServiceClass {

@Autowired
private HttpServletRequest request;

@Autowired
private HttpServletResponse response;

@Override
public void method(String id) {
String param = request.getParameter("param");
// Here i am getting request object as null
}

}
    public class SomeServiceClassImplTest {

@Mock
private HttpServletRequest request;

@Mock
private HttpServletResponse response;

@InjectMocks
private SomeServiceClassImpl someServiceClass;

@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}

@Test
public void methodTest() {
Mockito.when(request.getParameter(Mockito.any())).thenReturn("dm");

}

}

最佳答案

是否调用了 setup() 方法?

您是否应该添加一个 @RunWith 注释来指定一个将执行标记为 @Before 的方法的运行器?

例如,您可以使用 @RunWith(MockitoJUnitRunner.class) 标记您的类(class)

关于spring-boot - 如何在服务测试类中模拟@Autowired HttpServletRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com