|
经过不断努力,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、还有没有其它的好办法呀? |
|