gpt4 book ai didi

java - 测试使用 PersistentEntityResourceAssembler 的自定义 RepositoryRestController

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:10 24 4
gpt4 key购买 nike

我有一个 RepositoryRestController为一些持久实体公开资源。

我的 Controller 上有一个方法需要一个 PersistentEntityResourceAssembler帮我自动生成资源。

@RepositoryRestController
@ExposesResourceFor(Customer.class)
@RequestMapping("/api/customers")
public class CustomerController {

@Autowired
private CustomerService service;

@RequestMapping(method = GET, value="current")
public ResponseEntity getCurrent(Principal principal Long id, PersistentEntityResourceAssembler assembler) {
return ResponseEntity.ok(assembler.toResource(service.getForPrincipal(principal)));
}
}

(人为的例子,但它节省了我的用例的不相关细节的过多细节)

我想为我的 Controller 编写一个测试(我的真实用例实际上值得测试),并计划使用@WebMvcTest。

所以我有以下测试类:

@RunWith(SpringRunner.class)
@WebMvcTest(CustomerController.class)
@AutoConfigureMockMvc(secure=false)
public class CustomerControllerTest {
@Autowired
private MockMvc client;

@MockBean
private CustomerService service;

@Test
public void testSomething() {
// test stuff in here
}

@Configuration
@Import(CustomerController.class)
static class Config {
}

}

但是我得到一个异常说 java.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>()

大概是这里没有正确配置,因为我缺少整个数据层。有没有办法模拟 PersistentEntityResourceAssembler ?或者我可以在这里使用的另一种方法?

最佳答案

我现在结束了:

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc

它的缺点是测试将启动完整的 Spring 应用程序上下文(但没有服务器)。

关于java - 测试使用 PersistentEntityResourceAssembler 的自定义 RepositoryRestController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658333/

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