当前位置:文档之家› 对基于Spring框架的J2SE Java应用程序组件进行单元测试的应用实例

对基于Spring框架的J2SE Java应用程序组件进行单元测试的应用实例

对基于Spring框架的J2SE Java应用程序组件进行单元测试的应用实例
对基于Spring框架的J2SE Java应用程序组件进行单元测试的应用实例

1.1对基于Spring框架的J2SE Java应用程序组件进行单元测试的应用实例

1.1.1采用FileSystemXmlApplicationContext获得ApplicationContext

1、常规的JUnit中是直接创建被测试类的对象

2、如果被测试类的对象是由Spring 中IoC容器来创建

(1)所应该注意的问题

●对基于Spring 框架的系统进行单元测试和导入其ApplicationContext的一些技

用Spring来写单元一般来说非常简单,由于Spring基于接口的设计,测试也很简单。

实现测试的最简单的步骤可以归结为,使用ClassPathXmlApplicationContext或者FileSystemXmlApplicationContext获得一个ApplicationContext的引用,调用它的方法。

●应该采用FileSystemXmlApplicationContext来获得ApplicationContext。然后

再获得我们的被测试类的对象

(2)在测试类中应该声明一个被测试类的接口对象

但采用这种方式的要求是,我们的测试是基于接口,而不实现类。

(3)ApplicationContext对象的获得应该在测试用例类中的setUp方法中实现protected void setUp() throws Exception

{

super.setUp();

String springXMLPath="C:\\SpringJ2SEApp\\SpringApplication.xml";

ApplicationContext applicationContext =

new

FileSystemXmlApplicationContext(springXMLPath);

upperAction = (Action) applicationContext.getBean("theUpperAction");

}

1.1.2对基于Spring框架的J2SE组件测试----采用两个不同的Project(工程)

1、在Eclipse中新建一个包含TestCase的Project

(1)名称为TestSpringJ2SEApp

(2)然后将被测试类所在的Project引入到本Project中,选择原来的Project中的*.jpx 文件

(3)添加JUnit的*.jar包文件

(4)在该测试项目中添加与Spring相关的Jar包

Spring.jar、commons-logging.jar、log4j.jar

2、在该测试Project中添加一个TestCase类

(1)TestCase Wizard

输入类名称为TestTransferAction,包名称为com.px1987.springexamle.test,基类为junit.framework.TestCase,被测试的类为

(2)最后点击“Finish”按钮

(3)编程该测试用例类

package com.px1987.springexamle.test;

import junit.framework.TestCase;

import com.px1987.springexample.springj2seapp.*;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext; public class TestTransferAction extends TestCase{

TrnsferAction oneUpperTrnsferAction=null;

TrnsferAction oneLowerTrnsferAction=null;

protected void setUp() throws Exception{

super.setUp();

ApplicationContext ctx=

new

FileSystemXmlApplicationContext("D:/JUnitExamp/SpringJ2SEApp/SpringApplicatio n.xml");

oneUpperTrnsferAction = (TrnsferAction) ctx.getBean("theUpperAction");

oneLowerTrnsferAction = (TrnsferAction) ctx.getBean("theLowerAction");

}

protected void tearDown() throws Exception

{

oneUpperTrnsferAction=null;

oneLowerTrnsferAction=null;

super.tearDown();

}

public void testUpperActionExecute()

{

String inputStr="Spring J2SE Application";

String actualResult=oneUpperTrnsferAction.doTransfer(inputStr);

String expectedReturn = "HELLO,UPPERACTION SPRING J2SE APPLICATION";

this.assertEquals(expectedReturn, actualResult);

}

public void testLowerActionExecute()

{

String inputStr="Spring J2SE Application";

String actualResult=oneLowerTrnsferAction.doTransfer(inputStr);

String expectedReturn = "hello,loweraction spring j2se application";

this.assertEquals(expectedReturn, actualResult);

}

}

4、执行该TestCase类

(1)右击TestCase类

(2)将产生出下面的结果

通过该方式,可以将测试用例类与被测试类之间彻底地分离。

5、采用TestSuit的方式来运行TestCase类

(1)新建一个测试套件

(2)选择我们的测试用例类

将产生出下面的内容

(3)以套件的方式来执行,将产生出下面的结果

1.1.3对UserInfoManage类中的doUserLogin方法进行测试的实例

1、添加一个测试用例

TestUserInfoManage,包名称为com.px1987.springexample.test,被测试的类为https://www.doczj.com/doc/9718078763.html,erInfoManage

2、编程TestUserInfoManage程序类

package com.px1987.springexample.test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext; import junit.framework.TestCase;

import com.px1987.springexample.model.*;

import com.px1987.springexample.springj2seapp.TrnsferAction;

public class TestUserInfoManage extends TestCase{

UserInfoInterface oneUserInfoManage=null;

protected void setUp() throws Exception {

super.setUp();

String xmlFile="D:\\SpringExmp\\SpringJ2SEApp\\SpringApplication.xml";

ApplicationContext ctx=new FileSystemXmlApplicationContext(xmlFile);

oneUserInfoManage = (UserInfoInterface) ctx.getBean("oneUserInfoManage");

}

protected void tearDown() throws Exception {

super.tearDown();

}

public void testDoUserLoginSuccess() {

UserInfoVO oneUserInfo=new UserInfoVO();

oneUserInfo.setUserName("admin");

oneUserInfo.setUserPassWord("admin");

boolean actionReturn=oneUserInfoManage.doUserLogin(oneUserInfo);

this.assertTrue(actionReturn);

}

public void testDoUserLoginFailure() {

UserInfoVO oneUserInfo=new UserInfoVO();

oneUserInfo.setUserName("admin");

oneUserInfo.setUserPassWord("12345678");

boolean actionReturn=oneUserInfoManage.doUserLogin(oneUserInfo);

this.assertFalse(actionReturn);

}

public void testGetUserLogin(){

}

}

3、执行本程序代码

4、将出现下面的执行结果

相关主题
文本预览
相关文档 最新文档