rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Java综合

JUnit的基本使用

Junit是一个非常好的测试框架,无论是单元测试还是模块测试都是不错的选择。如果配合使用Spring的测试框架就能提供事务了,要了解Spring的测试框架,可以去Spring的分类。

下面我来说说基本的使用:

首先,我们使用MyEclipse6.0时已经集成了Junit这个框架了,使用非常简单,大家可以先生成一个需要被测试的类。

比如我用EJB3.0的会话bean做一个例子:

package org.sp.dao.impl;

import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.sp.dao.ClassesDao;
import org.sp.entity.Classes;

@Stateless(name="ClassesDao")
@Remote
public class ClassesDaoImpl implements ClassesDao {

@PersistenceContext(unitName="EJB_EntityManagerDemoPU")
private EntityManager em; public void delete(int id) {
   em.remove(em.find(Classes.class, id));
}

public List<Classes> findAll() {
   Query query = em.createQuery("from Classes");
   return query.getResultList();
}

public Classes findById(int id) {
   return em.find(Classes.class, id);
}

public void save(Classes c) {
   em.persist(c);
}

public void update(Classes c) {
   em.merge(c);
}

然后在客户端生成一个测试类:

package org.sp.test;

import java.util.List;

import javax.naming.InitialContext;

import junit.framework.TestCase;

import org.sp.dao.ClassesDao;
import org.sp.entity.Classes;

public class ClassesDaoTest extends TestCase {

private ClassesDao cd; protected void setUp() throws Exception {
   InitialContext ctx = new InitialContext();
   this.cd = (ClassesDao)ctx.lookup("ClassesDao/remote");
}

protected void tearDown() throws Exception {
   super.tearDown();
}

// public void testDelete() {
//   cd.delete(1); //
// public void testFindAll() {
//   List<Classes> lc = this.cd.findAll();
//   for (Classes c : lc){
//    System.out.print(c.getCId()+" "+c.getCName()); // } // public void testFindById() {
//   Classes c = this.cd.findById(2);
//   System.out.print(c.getCId()+" "+c.getCName()); //
// public void testSave() {
//   Classes c = new Classes();
//   c.setCName("一年A班A组"); //   this.cd.save(c); //
// public void testUpdate() {
//   Classes c = new Classes();
//   c.setCId(1);
//   c.setCName("一年A班B组");
//   this.cd.update(c);
// }

}
需要注意的是,通过MyEclipse的向导可以轻松的构建一个测试类,方法名都已经自动生成了。只要自己添加实现 就可以了。如果你手动生成测试类的话有几点需要特别注意:

1.测试类必须继承junit.framework.TestCase

2.测试的方法返回值必须是void,并且方法名必须是以test开头后面的单词第一个字母大写,如:public void testDelete()

protected void setUp() throws Exception {
}

该方法是初始化测试用例的方法

protected void tearDown() throws Exception {
}

该方法是销毁用例的方法

注:一般只要设置setup()方法就可以了,运行直接单击run-->Junit test 就可以了,运行结果会在junit窗口显示,当全部通过时,运行结果为绿色,有错误则是红色

还有一点需要特别指出,Junit的断言个人感觉用起来不太舒服,不用断言也可以达到目的,而且个人觉得不用断言使测试逻辑更加清晰。如果你喜欢使用断言,那我也没什么可说的了!呵呵,萝卜青菜各有所爱!

顶一下
(0)
踩一下
(0)