问题描述
我有一个测试类和一个通用的测试配置类,如下所示,我将配置注入到测试类中。
public class ControllerTest extends TestConfig {
@MockBean
private ProductListService productListService;
private String token;
@BeforeEach
public void init() throws Exception {
token = getToken();
}
@Test
public void createProductListtest() throws Exception {
ProductRequestDto productRequestDto = new ProductRequestDto();
when(productListService.createProductList(productRequestDto))
.thenAnswer(inv -> new ProductRequestDto());
String uri = "/products-lists";
MvcResult mvcResult = mvc.perform(mockmvcRequestBuilders.post(uri)
.accept(MediaType.APPLICATION_JSON)
.contentType(MediaType.APPLICATION_JSON)
.header("Authorization",token)
.content(requestBody(productRequestDto))
).andReturn();
}
TestConfig 类:
@SpringBoottest(classes = {SpringBootApplication.class,TestConfig.RestTestConfig.class},properties = {"spring.main.allow-bean-deFinition-overriding=true"})
@WebAppConfiguration
@AutoConfiguremockmvc
public class TestConfig {
protected mockmvc mvc;
@Autowired
protected WebApplicationContext webApplicationContext;
@BeforeEach
public void setUp() {
mvc = mockmvcBuilders.webAppContextSetup(webApplicationContext).build();
}
protected static String requestBody(Object request) {
// return request string
}
protected String getToken() throws Exception {
// return token
}
但是在 ControllerTest
中,我收到了 productListService
和 mvc
的空指针异常。它没有正确模拟和注入吗?我哪里出错了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)