Heute ein kleines Problem zu lösen und Überprüfung aufgezeichnet unten im Frühjahr auftreten, das erste, was wir mit junit4 Testkonfiguration vertraut sein sollen, ist wie folgt:
@RunWith , die durch junit4 dargestellt wird, und @ContextConfiguration zeigen den Ort der Konfigurationsdatei , die @ContextConfiguration Wenn kein Wert, wird der Standard die Klassennamen aus dem aktuellen Test und die Testklasse auf der gleichen Ebene im aktuellen Verzeichnis -Context zu finden sein, .xml - Konfigurationsdatei . Wie zum Beispiel: Name Ihrer Testklasse für App.class, dann ist es für App-context.xml Datei im selben Verzeichnis aussehen wird , wie in:
Aber dann wird es zu einem Test in Junit5
package cn.s.register;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import cn.s.register.action.UserAction;
import cn.s.register.dao.IUserDAO;
import cn.s.register.domain.User;
@SpringJUnitConfig
public class App {
@Autowired
UserAction action;
@Test
void test1() throws Exception {
action.execute();
}
@Autowired
private IUserDAO dao;
@Test
void testName() throws Exception {
User u = new User();
u.setName("欧阳");
u.setAge(14);
dao.save(u);
}
}
Nur ein @SpringJUnitConfig und @Test, und dann, wohin sie gehen, die Konfigurationsdatei zu finden?
In der Tat fanden wir den Quellcode @SpringJUnitConfig verbunden , die eine @ContextConfiguration enthält, diese Anmerkung wir nicht sehr vertraut sind? In JUnit4 sucht die Konfigurationsdatei Konfiguration. Die Junit5 @ContextConfiguration dass es nur eine ist Standard ist das aktuelle Verzeichnis den Namen des Tests -Context Profils zu finden
/**
* {@code @SpringJUnitConfig} is a <em>composed annotation</em> that combines
* {@link ExtendWith @ExtendWith(SpringExtension.class)} from JUnit Jupiter with
* {@link ContextConfiguration @ContextConfiguration} from the <em>Spring TestContext
* Framework</em>.
*
* @author Sam Brannen
* @since 5.0
* @see ExtendWith
* @see SpringExtension
* @see ContextConfiguration
* @see org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SpringJUnitConfig {
----(因为篇幅问题- -)下面是SpringJUnitConfig的方法,大家可以自行去spring源码中查看
}
Wenn wir @ContextConfiguration, dass das Hotel mit einem Custom-Look für den Weg in die Konfigurationsdatei neu konfiguriert werden
package cn.s.register;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import cn.s.register.action.UserAction;
import cn.s.register.dao.IUserDAO;
import cn.s.register.domain.User;
@SpringJUnitConfig
@ContextConfiguration("classpath:cn/s/register/App-context.xml")
public class App {
@Autowired
private IUserDAO dao;
@Test
void testName() throws Exception {
User u = new User();
u.setName("欧阳");
u.setAge(14);
dao.save(u);
}
}