2016-05-23 15 views
0

Ich habe eine Anwendung, wo ich Spring (Anmerkungen, nicht Xml), und ich brauche die Bohnen in meinem Unit Tests laden. Ich habe die AppConfig-Klasse aus meinem Code, den ich verwenden möchte, aber mit einer anderen Datenquelle (eine, die ich im Testordner definiere). Dies ist, weil ich eine in Speicher DB in meinen Tests verwenden möchte, und nicht die reale DB.UnitTests und Spring - neue Bohnen erstellen?

Hier ist, wie ich versuche, die AppConfig Klasse auszuführen:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {App.class, AppConfig.class}) 
public class DAOManagerTest { 
    //All code goes here 

    @AutoWired 
    UserDAO userDAO; 

    @Test 
    public void testGet() { 
    List<User> test = userDAO.selectAll(); 
    for (User u: test) { 
     u.toString(); 
    } 
    } 
} 

Diese nicht vollständig funktionieren, da es eine Bohne auf die Schaffung innerhalb der UserDAO Klasse schlägt fehl. Ich denke, ich brauche ein Tutorial/Anleitung, wie man mit Feder in Unit Tests umgehen kann. Soll ich neue Beans in meinem Testordner definieren oder kann ich die Spring-Klasse von meinem Code aus benutzen? Ist es auch möglich, eine separate Datenquelle für die Tests zu definieren?

+0

Ja, es ist alles möglich, und ja müssen Sie den Frühlings-docs gehen zu lesen. – OrangeDog

+0

Ich habe die Spring-Dokumente gelesen. Sowohl Spring-Boot beim Testen, als auch die Dokumentation für den Federtest. Ich kann nicht verstehen, wie es geht. – user16655

Antwort

1

Ja. Wenn Sie beispielsweise einige Beans in DAOManagerTest definieren, verwenden Sie @Primary, falls erforderlich, und fügen Sie DAOManagerTest.class zu @ContextConfiguration hinzu.

Es gibt so viele andere Möglichkeiten, es aber die Anordnung, wie Profile oder Mocks verwenden usw.

Verwandte Themen