我是Spring框架的新手。我需要为JPA repository编写单元测试。我正在尝试简单的saveAndFlush()
方法。但我的repository中没有保存任何内容。这是我的源代码:
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。希望有人能帮助我。谢谢!