junit加载配置文件|如何使用junit测试javaweb工程

Ⅰ maven项目的单元测试junit配置文件加载不到

把applicationContext复制一份到 biz/src/test/resources/META-INF/spring 里试试。

Ⅱ java junit的怎样通过注解加载配置文件

在biz的pom里面加上<testResources> <testResource> <directory> ../projectName/src/main/resources</directory> <filtering>true</filtering> </testResource></testResources>

Ⅲ java中Junit 测试中@ContextConfiguration里的配置

回答的什么乱码七糟的,测试类通常采用Junit测试,与tomcat无关,是两个运行环境,因为你采用注解,这时候需要加入spring配置文件,在你的测试类上加入注解@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("/springMVC.xml")就可以了,当然,我这里用的是springMVC,注解配置也在这里。你更改下你的就OK

Ⅳ 如何使用junit测试javaweb工程

一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步

测试类的命名建议是你将要测试的类名+Test,然后点 Browse, 你可以选择要进行测试的类(一般选择 Service, 因为 Service 关心的是业务需求),用这种方式创建可以自动生成要测试类的测试类,你只需要进行测试代码的书写.

@Testpublic void testqueryById(){} @Testpublic void testQueryAll(){} @Testpublic void testReceNumber(){}123456789101112

如果里面有自动生成的代码,删除或注释即可…

二:配置 spring 和 junit 整合, junit 启动时加载 springIOC 容器,这里你需要 Spring-test jar包

@RunWith(SpringJUnit4ClassRunner.class) //告诉junitspring配置文件@ContextConfiguration(locations = {"classpath:spring/spring-.xml"})123

同样的,在测试类中我们会调用 Service 的逻辑,由于我们使用的是 Spring+SpringMVC+ 持久化框架,所以要注入一个 IService 接口(这里我直接对 DAO 进行测试了)

@Autowiredprivate SeckillDao seckillDao;12

接下来是测试逻辑,在编写测试代码之前建议覆盖实体中的 toString 方法,不然打印会很麻烦.

@Test public void testqueryById(){ long id = 1000;Seckill seckill = seckillDao.queryById(id);System.out.println(seckill.getSeckillName());System.out.println(seckill);} //JAVA没有保存形参的记录,如果你在 中传了多个参数,那么需要声明它的形参对应的实参,否则 JVM 会显示找不到参数.声明方式稍后奉上@Test public void testQueryAll(){List<Seckill> seckills = seckillDao.queryAll(0, 100); for(Seckill seckill:seckills){System.out.println(seckill);}}@Test public void testReceNumber(){Date killTime = new Date(); //对增加进行测试的时候,只要数据库增加了一条数据,我们就默认这个方法执行成功了int updateCount = seckillDao.receNumber(1000L, killTime);System.out.println("updateCount = "+updateCount);}

解决JAVA不保存形参的记录

int receNumber(@Param("seckillId")long seckillId,@Param("killTime")Date killTime);Seckill queryById(long seckillId); /*** mysql的分页查询* @param offset 告诉它实际的形参* @param limit* @return*/List<Seckill> queryAll(@Param("offset")int offset,@Param("limit")int limit);1234567891011

接下来我们根据他返回的结果和我们想要的结果对应就可以了. 测试类不用部署项目, 测试周期非常短, 而且可以进行专项测试. 测试类代码逻辑十分简单, 几乎不会出错. 如果结果不是预期的, 那么根据你的需求修改!当然, 它的局限性也很打. 从单元测试不能看出页面传值的错误, 许多项目在服务器中的表现也不能模拟.那么我们什么时候用junit呢?当你的数据库操作非常复杂, 你不确定能输出你想要的值的时候, 相比用 debug 调试, 使用 Junit 是更方便的手段.或者新手出错概率非常大, 也不用在服务器中专门测试项目的表现, Junit 是个必备的工具!而且测试类的测试代码重用性很高.如果你的数据和预期相悖, 那么修改业务逻辑; 否则, 查看页面是否有错! Junit在一定程度上减轻了我们业务代码调试的压力, 让我们关注于一点解决错误.

Ⅳ 怎么创建junit4 注入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 { @BeforeClass public 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); } @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 <= 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月份的数据 */ @Test public 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,是不是很简单哪?赶快动手试试吧。


赞 (0)