创建测试上下文的JUnit @Rule的初稿。 这可以用Spring上下文规则可用于
这个帖子 创建集成测试一个完整的Spring上下文。
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.*;
import java.lang.reflect.Method;
import java.sql.Driver;
import java.sql.DriverManager;
/**
* Creates an context for tests using an Apache Tomcat server.xml.
*
* https://blogs.oracle.com/randystuph/entry/injecting_jndi_datasources_for_junit
*
* @author alex.collins
*/
public class TomcatContextRule implements TestRule {
public static final Logger LOGGER = Logger.getLogger(CatalinaContextRule.class);
/**
* Creates all the sub-contexts for a name.
*/
public static void createSubContexts(Context ctx, String name) {
String subContext = '';
for (String x : name.substring(0, name.lastIndexOf('/')).split('/')) {
subContext += x;
try {
ctx.createSubcontext(subConte