测试示例
- 弹簧靴
- 弹簧启动测试配置
- JUnit 5
- 免费标记
你不会发现这一切像下面这样简单:)花了很长时间才找到答案。
配置 :
@TestConfiguration
@PropertySource(value = "classpath:test.properties", encoding = "UTF-8")
public class GlobalConfig {
@Bean(name = "JsonMapper")
public JsonMapper jsonMapper() {
return new JsonMapper();
}
@Bean(name = "ObjectMapper")
public ObjectMapper objectMapper() {
return new ObjectMapper();
}
@Bean(name = "Mapper")
public Mapper dozer() {
return new DozerBeanMapper();
}
@Bean(name = "Validator")
public Validator validator() {
return new DefaultValidatorAdapter();
}
}
实际测试文件:
import freemarker.template.Configuration;
import global.GlobalConfig;
import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = {GlobalConfig.class, MessagePersistManager.class, TemplateManager.class, FileOperationsManager.class, Configuration.class})
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class MessagePersistManagerTest {
@Autowired
private MessagePersistManager messagePersistManager;
@Autowired
private TemplateManager templateManager;
@Autowired
private FileOperationsManager fileOperationsManager;
@Autowired
private Configuration freemarkerConfiguration;
@Value("${channel.outbound.ftp.local.directory}")
private String sepaFilesBasePath;
@BeforeAll
private void init() throws Exception {
System.out.println("Creating Base Dir=" + sepaFilesBasePath);
Files.createDirectories(Paths.get(sepaFilesBasePath));
/* FreeMarker Configuration */
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "/templates/");
}
@AfterAll
private void destroy() throws Exception {
System.out.println("Deleting Base Dir=" + sepaFilesBasePath);
FileUtils.deleteDirectory(new File(sepaFilesBasePath));
}
@Test
void persistSepaFile() {
messagePersistManager.persistSepaFile("sepaWinnings.xml", generateData());
System.out.println("e");
assert (true);
}