在jfinal开发中不能直接使用junit单元测试,所以写了以下工具。 原理是在运行junit测试 方法之前启动jfinal的插件,运行完成后关闭插件。
1import org.junit.After; 2import org.junit.Before; 3import com.jfinal.config.Constants; 4import com.jfinal.config.JFinalConfig; 5import com.jfinal.config.Plugins; 6import com.jfinal.plugin.IPlugin; 7 8/** 9 * jfinal单元测试 10 * 11 * [@author](https://my.oschina.net/arthor) roseboy 12 * 13 */ 14public class JunitFinalTest { 15 private Constants constants; 16 private Plugins plugins; 17 18 /** 19 * 通过配置类启动jfinal插件等 20 */ 21 @Before 22 public void initConfig() { 23 try { 24 String configClass = "net.roseboy.project.common.Config"; 25 Class<?> clazz = Class.forName(configClass); 26 JFinalConfig jfinalConfig = (JFinalConfig) clazz.newInstance(); 27 constants = new Constants(); 28 jfinalConfig.configConstant(constants); 29 plugins = new Plugins(); 30 jfinalConfig.configPlugin(plugins); 31 for (IPlugin plug : plugins.getPluginList()) { 32 plug.start(); 33 } 34 jfinalConfig.afterJFinalStart(); 35 System.out.println("\n==JunitFinalTest Start==================\n"); 36 } catch (Exception e) { 37 e.printStackTrace(); 38 } 39 } 40 41 /** 42 * 停止jfinal插件 43 */ 44 @After 45 public void endConfig() { 46 System.out.println("\n==JunitFinalTest End===================="); 47 if (plugins != null) { 48 for (IPlugin plug : plugins.getPluginList()) { 49 plug.stop(); 50 } 51 } 52 } 53} 54
在使用的时候,测试类需要继承上边的JunitFinalTest 类 使用示例:
1public class TestDoctor extends JunitFinalTest { 2 @Test 3 public void testMethod() { 4 Doctor d = Doctor.dao.findById("expert_000003"); 5 System.out.println(d); 6 } 7}