2017-03-02 107 views
1

我想知道如何为Spring Repository类编写Junit测试。测试JPA实体

作为例子: 类AccountMoveActionDet

JPA接口AccountMoveActionDetlJpaRepository

我要测试的这款仓储类工作或not.Spring JPA支持像

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")); 
    } 

} 
与名 'com.gayan.cmp.jparepositories.test.AccountTypeMovementJpaRepositoryTest'

错误创建豆:

请帮我解决这个问题。

+0

添加完整的堆栈跟踪 – Jens

+0

@Jens广东话我们自动装配JpaRepositories? –

+0

当然是.. – Jens

回答

0

如果使用弹簧启动1.4和最佳place上面开始,测试的JPA片

@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"); 
    } 

} 
+0

西隧做ü意思@DataJpaTest –

+0

我已经附上一个链接 –

+0

你应该提到,此代码仅适用于春季启动1.4及以上 – Jens