来看JBuilder 2005单位测试之创立测试固件
手机用到的是用j2me所编出来的小程序。在测试用例中经由过程setUp()、tearDown()创立测试固件,只能使这个测试固件在单个测试用例的分歧测试办法中共用,假如有多个测试用例都必要利用不异的测试固件,就必要将测试固件抽取到一个自力的类中。JBuilder供应了3个预界说的测试固件类,它们分离是:
·JDBC测试固件(JDBCFixture):用于猎取数据库毗连的测试固件,用户仅必要经由过程设置一些数据库信息,就能够用便利的办法猎取数据毗连。
·JNDI测试固件(JNDIFixture):用于摹拟从JDNI情况中猎取对象的测试固件。
·对照测试固件(ComparisionFixture):将测试输入到内部文件中,以便第二次测试时举行对照。
·自界说测试固件(CustomFixture):用户自界说的测试固件。
假如对JUnit的框架布局十分懂得,大概这些JBuilder扩大的测试固件对你来讲意义其实不年夜,它们不过是构建一些罕见的测试情况而已,你完整能够本人编写。在本节里,我们先容两个测试固件。
JDBC测试固件
假如你的工程中已有一个猎取数据毗连的大众类,你也有需要构建一个JDBC测试固件,由于JDBC测试固件不仅能够间接经由过程创立测试用例的导游间接指定,别的,JDBC测试固件还供应了很多面向测试的办法。
为了创立JDBC测试固件,我们先创立一个JDataStore的数据库,其数据文件位于<chapter25工程目次>/db/hr.jds,这个数据库的用户名和暗码是:sysdba/123456。hr.jds数据库中有一张EMPLOYEE的表,其布局以下所示:
<br>
图毛病!文档中没有指定款式的笔墨。EMPLOYEE表的数据
EMPLOYEE有3个字段,分离是ID、NAME和AGE,分离是String、String和int范例,并按上图所示填进3笔记录。
为了演示JDBC测试固件的详细利用,我们计划两个营业类:Employee和EmployeeDAO,此后用JDBC测试固件为测试EmployeeDAO供应数据毗连。这两个类的代码以下:
代码清单毛病!文档中没有指定款式的笔墨。Employee.java类
1.packagechapter25.db;
2.publicclassEmployee
3.{
4.privateStringid;
5.privateStringname;
6.privateintage;
7.publicEmployee(Stringid,Stringname,intage){
8.this.id=id;
9.this.name=name;
10.this.age=age;
11.}
12.publicStringgetId(){
13.returnid;
14.}
15.publicStringgetName(){
16.returnname;
17.}
18.publicintgetAge(){
19.returnage;
20.}
21.publicbooleanequals(Objecto){
22.if(oinstanceofEmployee){
23.Employeee1=(Employee)o;
24.returnid.equals(e1.getId())&&name.equals(e1.getName())&&age==e1.getAge();
25.}else{
26.returnfalse;
27.}
28.}
29.}
Employee类用于形貌EMPLOYEE表的一笔记录,该类会见数据库的EmployeeDAO代码以下所示:
代码清单毛病!文档中没有指定款式的笔墨。EmployeeDAO.java类
1.packagechapter25.db;
2.importjava.sql.*;
3.publicclassEmployeeDAO
4.{
5.privateConnectionconn;
6.publicEmployeeDAO(Connectionconn){
7.this.conn=conn;
8.}
9.publicEmployeefindById(Stringid)throwsSQLException
10.{
11.StringsqlStr="select*fromemployeewhereid="+id+"";
12.Statementstat=conn.createStatement();
13.ResultSetrs=stat.executeQuery(sqlStr);
14.if(rs.next()){
15.returnnewEmployee(id,rs.getString("name"),rs.getInt("age"));
16.}else{
17.returnnull;
18.}
19.}
20.}
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程, 是一种为 Internet发展的计算机语言 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
页:
[1]