配置
1. 对于maven项目,依次src->new->directory,然后选中test
创建成功后,项目目录如下
2. 对于Jfinal,不可以直接使用会出现以下报错
- 报错
在JFinal中直接使用@Test进行单元测试会报空指针错误,这是因为JFinal中部分插件没有启动导致的。并且Junit中不支持JFinal的启动类作为@RunWith的参数。所以我们需要自己写一个类,启动JFinal中的config。
具体可参考该bolg
- 解决
2. 新建JunitFinalTest类
public class JunitFinalTest {
private Constants constants;
private Plugins plugins;
/**
* 通过配置类启动jfinal插件等
*/
@Before
public void initConfig() {
try {
String configClass = "app.CloudNoteConfig";//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();
}
}
}
}
我的目录结构
3. 书写测试类时继承JunitFinalTest
在你需要测试的类中使用ctrl+shift+t可以快速生成测试类,但是记得手动继承JunitFinalTest
public class TestControllerTest extends JunitFinalTest {
@Test
public void dao() {
TestController testController = new TestController();
testController.dao();
}
}