2017-03-02 5 views
1

Ich möchte wissen, wie man Junit Test für Spring Repository-Klassen schreibt.Testen von JPA-Entitäten

Als Beispiel: Klasse-AccountMoveActionDet

JPA Interface-AccountMoveActionDetlJpaRepository

Und ich will diese Repository-Klasse testen Arbeit oder not.Spring JPA einige Methoden unterstützen wie

List findAll(); 
deleteAll(); 

Ich schrieb eine Klasse wie unten:

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

} 

Fehler beim Erstellen der Bohne mit dem Namen 'com.gayan.cmp.jparepositories.test.AccountTypeMovementJpaRepositoryTest':

Bitte helfen Sie mir dieses Problem zu beheben.

+0

Fügen Sie die komplette stacktrace – Jens

+0

@Jens Cant wir JpaRepositories autowired? –

+0

Ja natürlich .. – Jens

Antwort

0

Wenn Sie Feder-boot 1.4 verwenden und über den besten place zu starten, Testen der JPA Scheibe:

@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

wht do me von @DataJpaTest –

+0

Ich habe einen Link –

+0

angefügt Sie sollten erwähnen, dass dieser Code nur für Spring-Boot 1.4 und höher funktioniert – Jens