怎么创建junit4 注入spring 配置文件

怎么创建junit4 注入spring 配置文件,第1张

1 建立一个test的目录,在此目录下放置所有的JunitTestCase类和TestCase的配置文件

2 将项目中的Spring配置文件(默认名称为applicationContext.xml)复制到test目录下,并重新命名为JunitTestConf.xml。

3 根据Junit测试的需要修改JunitTestConf.xml文件中的内容,如数据库连接等。

4 新建一个名为SpringConfForTest.java的类,在此类中配置Spring启动所需的配置文件,并启动Spring。此类的内容如下:

package test

import org.junit.AfterClass

import org.junit.BeforeClass

import org.junit.Test

import org.springframework.context.ApplicationContext

import org.springframework.context.support.ClassPathXmlApplicationContext

import com.soma.global.WebContextHolder

public class SpringConfForTest {

@BeforeClass

public static void setUpBeforeClass() throws Exception {

//Spring启动所需要的配置参数文件,其中test/JunitTestConf.xml文件中保存了数据库连接等参数,可根据具体情况做修改

String[] paths = new String[] {"test/JunitTestConf.xml", "com/soma/conf/applicationContext-dao-hr.xml","com/soma/conf/applicationContext-dao.xml","com/soma/conf/applicationContext-dao-bug.xml","com/soma/conf/applicationContext-dao-change.xml","com/soma/conf/applicationContext-dao-common.xml","com/soma/conf/applicationContext-service-hr.xml" }

//启动Spring,得到Spring环境上下文

ApplicationContext ctx = new ClassPathXmlApplicationContext(paths)

//在此类启动时,将Spring环境上下文保存到单根类WebContextHolder中,以提供给其它的测试类使用

WebContextHolder.getInstence().setApplicationContext(ctx)

}

@AfterClass

public static void tearDownAfterClass() throws Exception {

}

@Test

public void test(){

//必须要写一个test空方法,否则SpringConfForTest类不会启动

}

}

5 新建TestSuite类,类名为AllTests,类的内容如下所示:

package test

import junit.framework.Test

import junit.framework.TestSuite

import org.junit.runner.RunWith

import org.junit.runners.Suite

import test.com.soma.domain.busilogic.hr.HrBusiLogicTest

import test.com.soma.domain.service.hr.checkOverTimeDateTest

@RunWith(Suite.class)

@Suite.SuiteClasses({

SpringConfForTest.class,

HrBusiLogicTest.class,

checkOverTimeDateTest.class

})

/**

* 批量执行Junit测试类,把类名写入到上面的Suite.SuiteClasses({})中,用逗号分隔

*/

public class AllTests {

public static Test suite() {

TestSuite suite = new TestSuite("Test for test")

//$JUnit-BEGIN$

//$JUnit-END$

return suite

}

}

注意:将SpringConfForTest.class放在第一个执行,以启动Spring配置环境,把自己的TestCase类放到后面,用逗号分开。在测试时,只要执行这个TestSuite类就可以了。

6 写自己的TestCase类,以CheckOverTimeDateTest.java为例子,文件内容如下:

public class CheckOverTimeDateTest {

private static HrTbovertimeManager hrTbovertimeManager

private static ExcuteSqlDAO excuteSqlDAO

@BeforeClass

public static void setUpBeforeClass() throws Exception {

//从Spring上下文中得到hrTbovertimeManager接口类的实例

hrTbovertimeManager=(HrTbovertimeManager)BeanUtil.getBean("hrTbovertimeManager")

excuteSqlDAO = (ExcuteSqlDAO) BeanUtil.getBean("excuteSqlDAO")

}

@Test

public void testGetProjectList()throws Exception {

List<OvertimeDetailValue>overtimeDetailValueList = new ArrayList<OvertimeDetailValue>()

int index = 9

for(int i = 1 i <= indexi++){

OvertimeDetailValue overtimeDetailValue = new OvertimeDetailValue()

overtimeDetailValue.setOtApplyDate("2009-05-0"+i)

overtimeDetailValueList.add(overtimeDetailValue)

}

String resultStr = hrTbovertimeManager.checkOverTimeDate(overtimeDetailValueList)

assertEquals("false", resultStr)

}

/**

* 导入2009-03月份出勤记录excel文件,返回null表示导入成功,需要先删除3月份的数据

*/

@Test

public void testSaveExcelDutyInformation() throws Exception{

// 在导入3月份出勤记录前先删除3月份的记录,执行delete from hr_tbdutyinformation

excuteSqlDAO.excuteSql("delete from hr_tbdutyinformation where dutydate>='2009-02-26' and dutydate<='2009-03-25'")

// System.out.println("----------"+System.getProperty("user.dir")+"/src/test/duty200903.xls")

String fileName = System.getProperty("user.dir")

+ "/src/test/duty200903.xls"

assertNull(hrTbdutyInformationManager.saveExcelDutyInformation(fileName))

}

}

说明:BeanUtil.getBean("")相当于WebContextHolder.getInstence().getApplicationContext().getBean(""),只是对此方法做了封装。

7 在Eclipse中,启动AllTests,选择“Run As JunitTest”,即可先启动Spring环境,再依次运行你自己所写的JunitTestCase,是不是很简单哪?赶快动手试试吧。

如果要在 Eclipse 中运行 JUnit,并导出覆盖率,可以按以下步骤进行:

首先,需要在 Eclipse 中安装 JUnit 和 JaCoCo 插件。可以在 Eclipse 的“帮助”菜单中选择“安装新软件”,在d出的窗口中输入插件的地址,点击“添加”按钮,然后安装 JUnit 和 JaCoCo 插件。

然后,可以编写 JUnit 测试类,编写测试用例,并在测试用例中使用@Test注解标记测试方法。例如:

Copy codeimport org.junit.Testpublic class Main {    @Test

   public void test() {        // 测试代码

   }

}

接着,可以在 Eclipse 中运行 JUnit 测试类。可以在测试类上右键,选择“运行 As” ->“JUnit Test”,即可运行测试类中的所有测试用例。

最后,可以导出覆盖率。可以在 Eclipse 的“窗口”菜单中选择“报告”,然后在d出的窗口中选择“覆盖率报告”,即可看到代码的覆盖率信息。此外,还可以点击“生成报告”按钮,导出覆盖率报告。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10003442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存