可以用main函数和JUnit来写测试代码。main是最早使用的,但是现在更流行的测试工具是JUnit。
成都创新互联IDC提供业务:成都电信服务器托管,成都服务器租用,成都电信服务器托管,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
下面是一些具体的编写测试代码的技巧或较好的实践方法:
1. 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。
3. 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。
4. 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
5. 将测试代码和工作代码放在一起,一边同步编译和更新。(使用Ant中有支持junit的task.)
6. 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。
7. 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
8. 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。
9. 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
10.测试要尽可能地小,执行速度快。
11.不要硬性规定数据文件的路径。
12.利用Junit 的自动异常处理书写简洁的测试代码
事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用来测试两个引用是否指向同一个对象
assertEquals()用来测试两个对象是否相等
14. 确保测试代码与时间无关
15. 使用文档生成器做测试文档。
补充:我没有ACCESS,我用的是odbc直接连接mdb文件,你可以用ACCESS同时操作mdb文件.如果要用到ACCESS,请修改bean中的属性值.
你的东西做的很好
只是数据库连接出了问题
这是我为你的工程写的一个关于数据库的bean
提供了一系列的数据操作方法
该类已经测试成功,只要添加到你的工程里就可以了。希望对你有用。
package lg_cidian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 数据库操作的JavaBean类,用于对数据库的查询与更新的实现;
* 该类默认的连接的数据库为odbc连接本地数据文件;
* 该类主要为用户一系列的数据操作提供底层服务.
*
* @version 1.0 2010/06/13
* @author Kiwwor
* @see UserData
*/
public class Access {
//驱动程序类
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接数据库url
private String connectionUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=en.mdb";
//用户名
private String user = "";
//用户密码
private String password = "";
//数据库连接对象
private Connection connection = null;
//数据库对象
private Statement statement = null;
//数据集对象
private ResultSet resultSet = null;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getConnectionUrl() {
return connectionUrl;
}
public void setConnectionUrl(String connectionUrl) {
this.connectionUrl = connectionUrl;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
return connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
this.statement = statement;
}
public ResultSet getResultSet() {
return resultSet;
}
public void setResultSet(ResultSet resultSet) {
this.resultSet = resultSet;
}
/**
* 获取一个连接对象,默认连接对象本地数据库qq。
* @return 连接是否成功
*/
public boolean createConnection() {
boolean b = false;
try {
Class.forName(driver);
connection = DriverManager.getConnection(connectionUrl, user, password);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 更新数据库
* @param sql 更新的sql语句
* @return 更新是否成功
*/
public boolean update(String sql) {
boolean b =false;
try {
statement = connection.createStatement();
statement.execute(sql);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 执行查询,将查询的结果集给resultmentSet。
* @param sql 查询的sql语句
*/
public void query(String sql) {
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 检测结果集是否为空
* @return true为存在记录
*/
public boolean next() {
boolean b = false;
try {
if (resultSet.next()) b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 获得结果集中当前行columnLabel的记录
* @param columnLabel 当前行要查询的列名.
* @return 查询的列值
*/
public String getValue(String columnLabel) {
String value = null;
try {
if (resultSet != null) value = resultSet.getString(columnLabel);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
/**
* 获得结果集中当前行columnIndex的记录
* @param columnIndex 当前行查询的列索引,第一列为1,第二列为2...
* @return 查询的列值
*/
public String getValue(int columnIndex) {
String value = null;
try {
if (resultSet != null) value = resultSet.getString(columnIndex);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
/**
* 关闭连接对象
*/
public void closeConnection() {
try {
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据库对象
*/
public void closeStatement() {
try {
if (statement != null) statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭结果集
*/
public void closeResultSet() {
try {
if (resultSet != null) resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据连接对象,数据库对象和数据结果集对象。
*/
public void closeAll() {
closeResultSet();
closeStatement();
closeConnection();
}
/**
* 测试该类函数。
* @param args
*/
public static void main(String[] args) {
Access db = new Access();
if (db.createConnection()) {
System.out.println("测试数据库连接成功.");
}
db.closeAll();
}
}
最简单的java代码肯定就是这个了,如下:
public class MyFirstApp
{
public static void main(String[] args)
{
System.out.print("Hello world");
}
}
“hello world”就是应该是所有学java的新手看的第一个代码了。如果是零基础的新手朋友们可以来我们的java实验班试听,有免费的试听课程帮助学习java必备基础知识,有助教老师为零基础的人提供个人学习方案,学习完成后有考评团进行专业测试,帮助测评学员是否适合继续学习java,15天内免费帮助来报名体验实验班的新手快速入门java,更好的学习java!
这个只能给出你思路了
首先词汇及选项和答案我们放在xml里
words
word value="hello" optionA="你好" optionB="今天" optionC="明天" optionD="后天" answer="A"/
word ....../
........
word ....../
/words
然后新建一个Word类,字段和xml的属性相同
程序启动的时候,解析xml文件,这样就可以得到一个List对象 ListWord wordList
那么首先让wordList.get(0)显示
下一题目按钮,就显示wordList.get(i)
重新开始按钮,就从word.getList(0)开始就OK了。