[J2EE][单元测试]
Posted zy691357966
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[J2EE][单元测试]相关的知识,希望对你有一定的参考价值。
[J2EE][单元测试]
标签(空格分隔): 未分类
JUnit单元测试基础要点
- 1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。
- 2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的。
- 3.单元测试主要是来测试程序的结果和自己期望的值是否相等
- 4.创建测试类的步骤:
- 1)在工程下面创建一个名为
test
的 Source Folder ,这个源程序文件夹和 src文件夹的阶级是相等的 - 2)测试类和目标类的包名要相同,这样的好处是测试类就不要import导入目标类的源码
- 3)测试类的命名规则:假设目标类的名字是
Calculator
,则创建的测试类应命名为CalculatorTest
或者TestCalculator
- 1)在工程下面创建一个名为
JUnit 4 测试框架
在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解
的方式来定义,只要在测试方法加上@Test
就可以进行测试,但有些原则还是要以junit3 的风格来设计,比如测试方法以test开头,习惯问题吧.
测试方法的要求
在添加测试方法之前,需要对测试方法做一些判断:
1)修饰符设为 public
2)返回类型 void
3)没有方法参数
4)方法名称必须以test开头
注解的类型
@Test
:定义一个测试方法的标志@Test(timeout=1000)
:设置超时时间,如果测试时间超过了你定义的timeout,测试失败@Test(expected)
: 申明出会发生的异常,比如 @Test(expected = Exception.class)@Before
: 跟junit 3.8 上的setUp() 方法同样的效果,方法名最好和setUp()一样,但不强求,在每一个测试方法之前被执行@After
: 跟junit 3.8 上的tearDown() 方法同样的效果,方法名最好和tearDown()一样,但不强求,在每一个测试方法之后被执行@BeforeClass
: 被该注解申明的方法,功能是:在所有的测试方法之前执行,只执行一次@AfterClass
: 被该注解申明的方法,功能是:在所有的测试方法之后执行,只执行一次@Ignore
:让 测试方法 或 测试类 不被执行,让其失去测试的功能
重点..如何对DAO层实现类进行单元测试
之所以重点说,单元测试的时候mapper并不能自动注入,需要手动注入.
- 使用
Before
进行注入
public ApplicationContext applicationContext;
public CompanycharacterlistMapper companycharacterlistMapper;
@Before
public void setUp()
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
companycharacterlistMapper = (CompanycharacterlistMapper) applicationContext.getBean("companycharacterlistMapper");
@Test
public void testaddCompanyCharacter()
String name=new String("dadadddda");
Companycharacterlist companycharacterlist= new Companycharacterlist();
companycharacterlist.setCompanycharacter(name);
//companycharacterlist.setCompanycharacterid(1);
companycharacterlistMapper.insert(companycharacterlist);
重点..如何对Service层进行单元测试
<!-- 待办事项的service -->
<bean id="StudentServiceImpl" class="teamB.GraduateJob.service.impl.StudentServiceImpl"/>
记住bean 的 id用来注入..
如果用自动扫描的话.id=studentServiceImpl.
并且是要扫描 teamB.GraduateJob.servic.impl
java代码
public class AdminServiceImplTest
public ApplicationContext applicationContext;
public AdminService adminService;
@Before
public void setUp()
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
adminService = (AdminService) applicationContext.getBean("AdminServiceImpl");
@Test
public void testaddCompanyCharacter()
String name=new String("dadada");
adminService.addCompanyCharacter(name);
以上是关于[J2EE][单元测试]的主要内容,如果未能解决你的问题,请参考以下文章