2013-08-17 6 views
3

J'aime tester mon code source:printemps JUnit test

@ContextConfiguration(locations = { "/applicationContext.xml" }) 
@Transactional() 
public class Test { 

    @Autowired 
    MyDao dao; 

    @org.junit.Test 
    @Rollback(false) 
    public void testSomething() throws Exception { 
     MyEntity e = new MyEntity(); 
     dao.create(e); 
    } 
} 

exécution de ce test avec Eclipse (comme un test JUnit) donne juste un Nullpointer-Exception.

Qu'ai-je fait de mal? THX!

Répondre

4

Il suffit d'ajouter @RunWith(SpringJUnit4ClassRunner.class) à votre classe:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "/applicationContext.xml" }) 
@Transactional() 
public class Test { 

    @Autowired 
    MyDao dao; 

    @org.junit.Test 
    @Rollback(false) 
    public void testSomething() throws Exception { 
     MyEntity e = new MyEntity(); 
     dao.create(e); 
    } 
} 

Vous devez spring-test pour cela.

+0

Merci! C'est tout! –

+0

@UdoR. Je suis heureux d'aider – t777

2

Vous pouvez ajouter une classe de base de test transactionnelles comme celui-ci

@ContextConfiguration(locations = "classpath*:applicationContext.xml") 
public class IntegrateTestBase extends AbstractTransactionalJUnit4SpringContextTests { 
} 

Ensuite wirite votre classe de test

public class Test extends IntegrateTestBase { 

    @Autowired 
    MyDao dao; 

    @org.junit.Test 
    @Rollback(false) 
    public void testSomething() throws Exception { 
     MyEntity e = new MyEntity(); 
     dao.create(e); 
    } 
} 

Vous ne devez pas écrire @ContextConfiguration et @Transcational dans chaque classe de test