2016-08-08 31 views
0

Ich habe eine JavaConfig-Datei, die wie folgt aussieht:JUnit-Testfälle für Config

@Configuration 
public class ServiceConfig { 
    @Autowired 
    FooBean someBean; 

    @Bean 
    @Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS) 
    public FooService fooService() { 
     return new FooServiceImpl(someBean, fooB()); 
    } 

    private Foo fooB() { 
     return new FooB(); 
    } 
} 

Und ich eine JUnit-Testdatei erstellt habe, wie so basierend auf this stack answer:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = ServiceConfig.class) 
public class ServiceConfigTest { 

} 

Aber ich habe eine Paar Fragen:

  1. Sollte ich alle meine Config-Dateien mit dieser einen Junit-Test-Datei testen? Ich habe insgesamt 4 Config-Dateien einschließlich der ServiceConfig Datei, so in der ContextConfiguration sollte ich nur alle auflisten oder haben einen Junit-Test für jeden einzelnen?

  2. Was soll ich hier testen? Ich habe versucht, diese spring guide lesen, aber ich bin nicht wirklich zu verstehen, was Verhalten ich hier testen sollte ... nur wenn etwas erfolgreich autowired?

Antwort

2

Sollte ich alle meine Konfigurationsdateien mit dieser Junit-Testdatei testen? I haben insgesamt 4 Config-Dateien einschließlich der ServiceConfig-Datei, so in die ContextConfiguration sollte ich nur alle auflisten oder haben einen Junit-Test für jeden einzelnen?

In Ihrer Testklasse muss @ContextConfiguration auf dem Stamm der Klasse positioniert sein. Um also jede Konfiguration zu testen, müssen Sie eine Testklasse von Configuration erstellen.

Was soll ich hier testen? Ich habe versucht, diese Federführung zu lesen, aber Ich bin nicht wirklich zu verstehen, welches Verhalten ich hier testen sollte ... nur wenn etwas erfolgreich autowired wird?

Testen, ob Autowired erfolgreich ist, scheint nicht sehr nützlich zu sein. Es wäre als Komponententest, dass die Spring-Funktion funktioniert. Wenn Sie diese Klassen unit testen möchten, sollten Sie Ihre eigene Verarbeitung testen. Für den Moment hast du nicht wirklich. Ich bin mir also nicht sicher, ob das Testen von ihnen einen großen Wert hat.

0

Testen Sie das beabsichtigte Verhalten Ihres Systems oder einzelner Einheiten funktional. Als Teil davon werden die Konfigurationen getestet.

Sie müssen keine Tests durchführen, um sicherzustellen, dass etwas korrekt verdrahtet ist. Dies sollte auf der Grundlage impliziert werden, dass die Funktionalität, die Sie testen, funktioniert.

Sie können mehrere Konfigurationen in einer Konfigurationsklasse unter Verwendung von @Import aggregieren.