㈠ maven项目的单元测试junit配置文件加载不到
把applicationContext复制一份到 biz/src/test/resources/META-INF/spring 里试试。
㈡ org.junit.Test在哪的啊 怎么我的总是显示软件包org.junit.Test不存在
那是提示缺少JAR包,上网找 JUNIT3 或 JUNIT4 的JAR包 添加到PROJECT 中 就可以了
㈢ 如何用Junit4测试Spring框架下配置的类
如何用Junit4测试Spring框架下配置的类
前几天,我们在做Junit4的单元测试时,遇到了问题,就是Junit无法获得spring的配置环境,即Junit无法得到Spring创建的类实例。在查阅了网上的一些资料和同事的帮助下,成功的解决了此问题。步骤如下: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.;import com.soma.global.WebContextHolder;public class SpringConfForTest {@BeforeClasspublic static void setUpBeforeClass() throws Exception {//Spring启动所需要的配置参数文件,其中test/JunitTestConf.xml文件中保存了数据库连接等参数,可根据具体情况做修改String[] paths = new String[] {"test/JunitTestConf.xml", "com/soma/conf/applicationContext–hr.xml","com/soma/conf/applicationContext-.xml","com/soma/conf/applicationContext–bug.xml","com/soma/conf/applicationContext–change.xml","com/soma/conf/applicationContext–common.xml","com/soma/conf/applicationContext-service-hr.xml" };//启动Spring,得到Spring环境上下文ApplicationContext ctx = new (paths);//在此类启动时,将Spring环境上下文保存到单根类WebContextHolder中,以提供给其它的测试类使用WebContextHolder.getInstence().setApplicationContext(ctx);}@AfterClasspublic static void tearDownAfterClass() throws Exception {}@Testpublic 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;@BeforeClasspublic static void setUpBeforeClass() throws Exception {//从Spring上下文中得到hrTbovertimeManager接口类的实例hrTbovertimeManager=(HrTbovertimeManager)BeanUtil.getBean("hrTbovertimeManager");excuteSqlDAO = (ExcuteSqlDAO) BeanUtil.getBean("excuteSqlDAO");}@Testpublic void testGetProjectList()throws Exception {List<OvertimeDetailValue> overtimeDetailValueList = new ArrayList<OvertimeDetailValue>();int index = 9;for(int i = 1 ;i <= index;i++){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月份的数据*/@Testpublic void testSaveExcelDutyInformation() throws Exception{// 在导入3月份出勤记录前先删除3月份的记录,执行delete from hr_tbtyinformation;excuteSqlDAO.excuteSql("delete from hr_tbtyinformation where tydate>='2009-02-26' and tydate<='2009-03-25'");// System.out.println("———-"+System.getProperty("user.dir")+"/src/test/ty200903.xls");String fileName = System.getProperty("user.dir")+ "/src/test/ty200903.xls";assertNull(hrTbtyInformationManager.saveExcelDutyInformation(fileName));}}说明:BeanUtil.getBean("")相当于WebContextHolder.getInstence().getApplicationContext().getBean(""),只是对此方法做了封装。7 在Eclipse中,启动AllTests,选择“Run As JunitTest”,即可先启动Spring环境,再依次运行你自己所写的JunitTestCase
㈣ Eclipse中怎么使用junit测试
Eclipse中使用junit测试的方法:
1、首先新建一个项目叫JUnit_Test,并编写测试类Calculator.java
publicclassCalculator{privatestaticintresult;//静态变量,用于存储运行结果publicvoidadd(intn){result=result+n;}publicvoidsubstract(intn){
result=result-1;//Bug:正确的应该是result =result-n}publicvoidmultiply(intn){}//此方法尚未写好publicvoiddivide(intn){result=result/n;}publicvoidsquare(intn){result=n*n;}publicvoidsquareRoot(intn){for(;;);//Bug:死循环}publicvoidclear(){//将结果清零result=0;}publicintgetResult(){returnresult;}}
2.将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图: