当前位置:
首页
文章
前端
详情

JFinal的junit单元测试支持

在jfinal开发中不能直接使用junit单元测试,所以写了以下工具。 原理是在运行junit测试 方法之前启动jfinal的插件,运行完成后关闭插件。

import org.junit.After;
import org.junit.Before;
import com.jfinal.config.Constants;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.plugin.IPlugin;

/**
 * jfinal单元测试
 * 
 * [@author](https://my.oschina.net/arthor) roseboy
 *
 */
public class JunitFinalTest {
    private Constants constants;
    private Plugins plugins;

    /**
     * 通过配置类启动jfinal插件等
     */
    @Before
    public void initConfig() {
        try {
            String configClass = "net.roseboy.project.common.Config";
            Class<?> clazz = Class.forName(configClass);
            JFinalConfig jfinalConfig = (JFinalConfig) clazz.newInstance();
            constants = new Constants();
            jfinalConfig.configConstant(constants);
            plugins = new Plugins();
            jfinalConfig.configPlugin(plugins);
            for (IPlugin plug : plugins.getPluginList()) {
                plug.start();
            }
            jfinalConfig.afterJFinalStart();
            System.out.println("\n==JunitFinalTest Start==================\n");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 停止jfinal插件
     */
    @After
    public void endConfig() {
        System.out.println("\n==JunitFinalTest End====================");
        if (plugins != null) {
            for (IPlugin plug : plugins.getPluginList()) {
                plug.stop();
            }
        }
    }
}

在使用的时候,测试类需要继承上边的JunitFinalTest 类 使用示例:

public class TestDoctor extends JunitFinalTest {
    @Test
    public void testMethod() {
        Doctor d = Doctor.dao.findById("expert_000003");
        System.out.println(d);
    }
}

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。