2017-03-02 102 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