Java 测试JPA实体

Java 测试JPA实体,java,spring,spring-mvc,spring-boot,spring-test,Java,Spring,Spring Mvc,Spring Boot,Spring Test,我想知道如何为Spring存储库类编写Junit测试 例如: 类AccountMoveActionDet Jpa接口AccountMoveActionDetlJpaRepository 我想测试这个存储库类是否工作 List findAll(); deleteAll(); 我写了一节课,如下所示: @RunWith(SpringJUnit4ClassRunner.class) public class AccountTypeMovementJpaRepositoryTest extends

我想知道如何为Spring存储库类编写Junit测试

例如: 类AccountMoveActionDet

Jpa接口AccountMoveActionDetlJpaRepository

我想测试这个存储库类是否工作

List findAll();
deleteAll();
我写了一节课,如下所示:

 @RunWith(SpringJUnit4ClassRunner.class)
public class AccountTypeMovementJpaRepositoryTest extends AbstractJpaTest {

    @Autowired
    AccountTypeMovementJpaRepository accountTypeMovementJpaRepository;

    @Override
    public void test() {
    executeSqlScript("/fixtures/accountTypeMovementJpa.sql");
    assertEquals("accountTypeMovementJpaRepository Test", accountTypeMovementJpaRepository.findAll().size(),
        JdbcTestUtils.countRowsInTable(getJdbcTemplate(), "COF5REP"));
    }

}
创建名为的bean时出错 'com.gayan.cmp.jparepositories.test.AccountTypeMovementJpaRepositoryTest':


请帮助我解决这个问题。

如果您使用spring boot 1.4及以上版本,最好开始测试JPA切片:


如果您使用spring boot 1.4及以上版本,则最好开始测试JPA切片:



添加完整的stacktrace@Jens我们不能自动连接JPA positiories吗?当然可以。那么我们如何测试JPA positioris呢?使用测试数据库和测试数据添加完整的stacktrace@Jens我们不能自动连接JPA positiories吗?当然可以。那么我们如何测试JPA positioris呢?使用测试数据库和测试数据你说的@DataJPATE是什么意思?我已经附加了一个链接,你应该请注意,此代码仅适用于spring boot 1.4及以上版本,我使用boot 1.4.1。但是不能放置@DataJpaTest注释:(@Gaiya您遇到了什么问题?您是否添加了
spring boot starter test
依赖项?您所说的@DataJpaTest是什么意思?我已经附加了一个链接,您应该提到,该代码仅适用于spring boot 1.4及以上版本。我使用boot 1.4.1。但是不能放置@DataJpaTest注释:(@Gaiya您遇到了什么问题?您是否添加了
spring boot starter test
dependency?
@RunWith(SpringRunner.class)
@DataJpaTest
public class UserRepositoryTests {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private UserRepository repository;

    @Test
    public void findByUsernameShouldReturnUser() {
        this.entityManager.persist(new User("sboot", "123"));
        User user = this.repository.findByUsername("sboot");

        assertThat(user.getUsername()).isEqualTo("sboot");
        assertThat(user.getVin()).isEqualTo("123");
    }

}