1
我正在编写一个测试,其中我想测试其余控制器。 我嘲笑这是在控制,但春天也希望这是里面的服务库中的服务...由于NoSuchBeanDefinitionException而无法测试弹簧休息控制器
@RunWith(SpringRunner.class)
@WebMvcTest(AccountRestController.class)
public class AccountRestControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private PremiumAccountService service;
AccountRequestResource resource = new AccountRequestResource(25d);
PremiumAccount premiumAccount = new PremiumAccount("abc", "cba", LocalDateTime.now(), 25d);
@Test
public void testGetAccountWithAvailableGB() throws Exception {
given(service.getAccountByGB(25d)).willReturn(Optional.of(premiumAccount));
mockMvc.perform(post("/api/account"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.login", is("abc")));
}
}
堆栈:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'premiumaccountservice.repository.PremiumAccountRepository' available: expected at least 1 bean which qualifies as autowire candidate.
AccountRestController:
@RestController
@RequestMapping("/api")
public class AccountRestController {
private final PremiumAccountService service;
@Autowired
public AccountRestController(PremiumAccountService service) {
this.service= service;
}
}
看起来像一个公开的问题。 [github.com/spring-projects/spring-boot/issues/6663] –
您可以发布完整的stacktrace和'AccountRestController'的代码吗?您是否可能将'PremiumAccountRepository'注入到您的'AccountRestController'中? 您使用哪个春季版本? – fap
@fap不,在'AccountRestController'中'PremiumAccountService'只被注入。我正在使用弹簧引导1.5.6.RELEASE –