【发布时间】:2014-08-13 14:54:27
【问题描述】:
我是 Spring 框架的新手。我需要为 JPA 存储库编写单元测试。我正在尝试简单的存储库saveAndFlush() 方法。但是我的存储库中没有任何内容。这是我的源代码:
TestContext.class
@Configuration
@PropertySource("classpath:log4j.properties")
public class TestContext {
@Bean
public RoleService roleService() {
return Mockito.mock(RoleService.class);
}
@Bean
public RightService RightService() {
return Mockito.mock(RightService.class);
}
@Bean
public RoleRepository RoleRepository() {
return Mockito.mock(RoleRepository.class);
}
}
RoleServiceTest.class
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestContext.class})
@WebAppConfiguration
public class RoleServiceTest {
@Autowired
private RoleRepository roleRepository;
@Test
public void TestServices() throws Exception {
RoleDetails first = new RoleDetails();
first.setId("1");
first.setDescription("First Description");
first.setName("First");
roleRepository.saveAndFlush(new RoleEntity(first));
roleRepository.save(new RoleEntity(first));
List<RoleEntity> roles = new ArrayList<RoleEntity>();
roles = roleRepository.findAll();
System.out.println(roles);
assertEquals(1, roles.size());
}
}
还有错误:
java.lang.AssertionError: expected:<1> but was:<0>
我几乎可以肯定问题是由于 testContext.Class 而发生的。我使用这个类来测试我的控制器,它运行良好,但现在我需要测试我的数据库,我不知道如何修改 contextConfiguration。我希望有人能帮助我。提前致谢!
【问题讨论】:
标签: java spring unit-testing spring-mvc jpa