JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了
首先需在Java Resources下的Libraries中导入JUnit 4包,
使用JUnit对在前面Dao中定义的所有功能方法进行单元测试,确保所有功能的准确实现,使用单元测试则只测试一部分,不必一次使用所有代码
为每个方法新建一个函数,例如测试Dao中所定义的ReturnAccountByaccount_account()
方法,则新建一个
public void TestReturnAccountByaccount_account()
以及在其前加上@Test
表示进行JUnit测试,构成如下形式:
@Test
public void TestReturnAccountByaccount_account()//测试根据用户数字账号返回用户
{
Account abc = new Account();
abc.setAccount_account(20); //输入账号的数字账号,则可返回该数字账号数据匹配的对象以及可现实其他信息
abc=accountDao.returnAccountByaccount_account(abc);
System.out.println("用户数字账号:"+abc.getAccount_account()+" 用户个性名称:"+abc.getAccount_name()+" 用户密码:"+abc.getAccount_pass());
Assert.assertEquals(abc.getAccount_name()==null,0);
}
以@Test
开头,用Assert.assertEquals(abc.getAccount_name()==null,0);
进行断言判断,点击到函数名右键选择Run As
下的Junit Test
进行单元测试,而不是选择Run On Server
,断言成功则会显示绿色,失败则是红色
分别在com.itqinxun.test
包下新建3个java文件用于分别测试3个Dao
例:在包下新建TestMessageDao.java
完成对MessageDao
相关功能的单元测试
package com.itqinxun.test;
import java.util.List;
import org.junit.Test;
import org.junit.Assert;
import com.itqinxun.dao.impl.MessageDaoImpl;
import com.itqinxun.dao.MessageDao;
import com.itqinxun.model.Message;
public class TestMessageDao {
MessageDao messageDao=new MessageDaoImpl();
@Test
public void TestAddMessage() //测试新增主题帖
{
Message abc=new Message();
abc.setMessage_account(11);
abc.setMessage_title("五六七 ");
abc.setMessage_content("zuo xie shen me hao");
boolean result=messageDao.addMessage(abc);
Assert.assertEquals(true, result);
}
@Test
public void TestreturnMessageBymessage_id() //测试删除主题帖
{
Message abc=new Message();
abc.setMessage_id(160);
System.out.println("id"+abc.getMessage_id());
Message message=new Message();
message=messageDao.returnMessageBymessage_id(abc);
System.out.println("qqq发帖人数字账号:"+message.getMessage_account()+" 主题帖数字ID: "+message.getMessage_id()+" 主题帖标题:"+message.getMessage_title()+" 主题帖内容:"+message.getMessage_content()+" 日期"+message.getMessage_data());
Assert.assertEquals(message, null);
}
@Test
public void TestDeleteMessage() //测试删除主题帖
{
Message abc=new Message();
abc.setMessage_id(11);
boolean result=messageDao.deleteMessage(abc);
Assert.assertEquals(true, result);
}
@Test
public void TestdeleteMessageByaccount_account() //测试删除主题帖
{
int id=19;
boolean result=messageDao.deleteMessageByaccount_account(id);
Assert.assertEquals(true, result);
}
@Test
public void TestSearchMessageALL2() //测试显示所有主题帖
{
List<Message> result=messageDao.searchMessageALL2();
for(Message message: result){
System.out.println("发帖人数字账号:"+message.getMessage_account()+" 名字"+message.getMessage_account_account()+" 主题帖数字ID: "+message.getMessage_id()+" 主题帖标题:"+message.getMessage_title()+" 主题帖内容:"+message.getMessage_content()+" 日期"+message.getMessage_data());
}
Assert.assertEquals(messageDao.searchMessageALL()==null, 0);
}
}