51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 7302|回复: 5
打印 上一主题 下一主题

急:java单元测试junit,cactus如何与容器内的jndi交互测javaBean

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-11-2 11:14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经过不断努力,jUnit+cactus我会用了,是与ant结合的,可以测一些servlet,简单的javaBean了。

但我想测一下我这个类,如何测呀?

package mocktest.bean;

import org.genius.data.DataConfig;
import java.sql.*;

public class UserInfo {

  private String username;
  private String password;

  public void setUsername(String name)
  {
    username=name;
  }

  public void setPassword(String pass)
  {
    password=pass;
  }

  public String getUsername()
  {
    return username;
  }

  public String getPassword()
  {
    return password;
  }
  public UserInfo() {
  }

  public int checkUser()
  {
    int tmpInt=0;//0为没有,1为有。
    String sql=null;
    ResultSet rs;
    DataConfig mydbc=null;
    try
    {
      mydbc=new DataConfig();
  //mydbc.setJNDI("jdbc/mock");
      mydbc.setJNDI("java:/comp/env/jdbc/mock");
  //mydbc.setJNDI("mockJNDI");
      sql="select * from userdata where username=\'"+username+"\' and  
password=\'"+password+"\'";
      rs=mydbc.executeQuery(sql);
      if(rs.next())
      {
        tmpInt=1;
      }
      else
      {
        tmpInt=0;
      }
      rs.close();
      //mydbc.closeConn();
    }
    catch(Exception e)
    {
      System.err.println(e+"error");
    }
    finally
    {
      try
      {
        mydbc.closeConn();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
    }
    return tmpInt;
  }

  public int addUser()
  {
    int tmpInt=0;//0为失败,1为有重复注册,2为成功
    String sql=null;
    ResultSet rs;
    DataConfig mydbc=null;
    DataConfig mydbcins=null;
    try
    {
      mydbc=new DataConfig();
  //mydbc.setJNDI("jdbc/mock");
      mydbc.setJNDI("java:/comp/env/jdbc/mock");
  //mydbc.setJNDI("mockJNDI");
      sql="select * from userdata where username=\'"+username+"\'";
      rs=mydbc.executeQuery(sql);
      if(rs.next())
      {
        tmpInt=1;
      }
      else
      {
        sql="insert into userdata (username,password) values  
(\'"+username+"\',\'"+password+"\')";
        mydbcins=new DataConfig();
//mydbc.setJNDI("jdbc/mock");
        mydbcins.setJNDI("java:/comp/env/jdbc/mock");
//mydbc.setJNDI("mockJNDI");
        mydbcins.executeUpdate(sql);
        mydbcins.closeConn();
        tmpInt=2;
      }
      //mydbc.closeConn();
    }
    catch(Exception e)
    {
      System.err.println(e+"error");
    }
    finally
    {
      try
      {
        mydbc.closeConn();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
    }
    return tmpInt;
  }


}

以上是一个简单的javaBean,访问数据库,通过tomcat配的连接池,与jsp结合对库操作。然后我启动tomcat执行了一下 ,web应用是没有问题。

我想对这类进行单元测试,用cactus来测,用例我写好了,但就是不能执行测试呀,因cactus启动的是
tomcat的一个副本,容器里没有我配的连接池呀,怎么来做这种测试呀?

package mocktest.bean;

import junit.framework.*;

public class TestUserInfo extends TestCase {
  private UserInfo userInfo = null;

  protected void setUp() throws Exception {
    super.setUp();
    userInfo = new UserInfo();
  }

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

  public void testCheckUser() {
    userInfo.setUsername("hh");
    userInfo.setPassword("hh");
    //int expectedReturn = 0;
    int actualReturn = userInfo.checkUser();
    //System.out.println(actualReturn);
    assertEquals(1, actualReturn);
    //assertEquals(1, expectedReturn, actualReturn);
    /**@todo fill in the test code*/
  }

}

1、能不能有办法,让cactus启动的tomcat里存在连接池。

2、或者能让自己的程序部署的时候,用ant产生一个连接池呀?

3、还有没有其它的好办法呀?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-11-2 16:05:00 | 只看该作者
我也遇到这个问题,也就是不知道怎么样不测,希望来个大哥给简单的介绍一下。在这儿谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-11-2 16:16:01 | 只看该作者
那你有没有好办法呀?

哪位高人可以指点一下呀?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-11-4 09:16:16 | 只看该作者
晕,谁来教我呀?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2004-11-19 10:52:50 | 只看该作者
继续顶一下,我要答案呀
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-6-25 00:46:53 | 只看该作者
我也很想知道答案,,请教高人.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-4 12:38 , Processed in 0.079695 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表