Sobre SpringJunit5 pequeño problema ruta del archivo de configuración configuración de la prueba

Hoy en día, se encontró con un pequeño problema a resolver y revisión registrado en primavera, la primera cosa que debe estar familiarizado con la configuración de prueba Junit4 es el siguiente:

@RunWith que está representado por Junit4 y @ContextConfiguration indican la ubicación del archivo de configuración , el cual @ContextConfiguration Si ningún valor, el valor por defecto será el de encontrar el nombre de clase de la prueba actual y la clase de prueba en el mismo nivel en el directorio actual -context archivo de configuración .xml . Tales como: el nombre de la clase de prueba para App.class, entonces se buscará el archivo de App-context.xml en el mismo directorio que muestra en:

 

Pero entonces se convierte en una prueba en 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);
}
}

Sólo un @SpringJUnitConfig y @test, y luego a dónde ir para encontrar el archivo de configuración que?

De hecho, hemos encontrado el código fuente asociado @SpringJUnitConfig que contiene una @ContextConfiguration, esta anotación no estamos muy familiarizados con? En junit4 está buscando la configuración del archivo de configuración. El Junit5 @ContextConfiguration que es sólo un valor predeterminado es el directorio actual para encontrar el nombre del perfil -context prueba

/**
 * {@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源码中查看
}

Cuando @ContextConfiguration que la propiedad puede ser re-configurado con un diseño personalizado para la ruta de acceso al archivo de configuración

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

 

 

 

 

 

 

 

Publicado seis artículos originales · ganado elogios 3 · Vistas 793

Supongo que te gusta

Origin blog.csdn.net/SmileLucki/article/details/105264188
Recomendado
Clasificación