我创建了一个简单的RestController,它自动装配EntityManager和我拥有的另一个类。如果我运行我的应用程序,一切正常,则自动定义。现在我尝试为我的班级创建一个简单的测试:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@EnableWebMvc
@ContextConfiguration(classes = MonitoringController.class)
public class MonitoringControllerTest {
private MockMvc mockMvc;
@Autowired
WebApplicationContext wac;
@Before
public void setup() {mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void testMonitoringIsUp()throws Exception {
mockMvc.perform(get("/monitoring"))
.andExpect(status().isOk());
}
这里开始出现问题,我收到了错误 引起:org.springframework.beans.factory.UnsatisfiedDependencyException:使用名称' monitoringController创建bean时出错':通过字段表示的不满意的依赖关系&#39 ;;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型' javax.persistence.EntityManager'的限定bean。可用:预计至少有1个豆有资格作为autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
我想我错过了很简单的事情。任何帮助赞赏。
答案 0 :(得分:3)
检查您使用的弹簧版本。在春季启动1.4.x及以上 您所需要的只是:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MonitoringControllerTest {
// autowire beans and perform tests with @Test
}
答案 1 :(得分:0)
找到解决方案。添加了@EnableAutoConfiguration
来解决EntityManager问题。