在c被驯化到ANSI C之前,有一个小的玩笑是:我的代码编译过了,因此它也应该可以运行了。
1。JUnit是一套单元测试框架。可以从www.junit.org获取。需要导入junit.framework.* 。最简单的测试
是把所有测试放到TextCase的某个子类中。每个测试必须是public的,不接受参数,返回void
并且以一个"test"开头的方法名。JUnit的反射机制会把这些方法标识为单个的测试,然后一个一个允许。
2。JUnit有两个可选的特殊方法,setUp(),tearDown()。setUp()与构造器的唯一区别是:setUp是在测试之前
直接调用的。tearDown()用来做测试后的清理工作(文件,网络等等)。
3。JDK1.4提供了断言机制。语法为:
assert boolean-expression;
assert boolean-expression: information-expression;
4 。 但是JDK1.4中缺省情况断言是关闭的,为了防止编译是的错误,需要带-source 1.4 参数编译。
在运行的时候必须开启断言,否则没有任何特定的断言标志。最简单的方式是用-ea标志.完整拼写
-enableassertions
另一种控制断言的方式是,通过ClassLoader对象来编程实现.JDK1.4为ClassLoader提供了几个新方法,以允许
动态启动和禁止断言,setDefaultAssertionStatus为所有随后载入的类设置断言状态。
5。按契约设计(DBC),有Eiffel编程语言的创建者Bertrand Meyer发明。
DBC的基本思想是:有一个明确指定的契约,该契约存在于服务提供者和服务消费者之间。在面向对象的编程中
服务通常是有对象提供的,而且对象的边界是该类的接口。当客户调用特定的公共方法时,他们总是期望能
从那个调用中产生特定的行为:对象的中间状态,以及一个可以预测的放回值。
1)这种行为是可以明确指定的,好像一个契约。
2)这种行为是通过执行某些运行是的检查来确保的,它检测先验条件,后验条件以及不变式。
6。断言是一种最简单的"检测指令"。一个例子是在JDK1.4中引入了Thread.holdsLock().可以用
assert Thread.holdsLock(this);
断言当前线程是否持有锁。
7。ant是设计优秀的构建自动工具。比c/c++的make功能更强大。可以从http://jakarta.apache.org/ant上下载。
ant成为java工程上事实的标准,为了跨平台,工程文件格式为xml。工程中创建一个默认名为build.xml的文件,
键入ant即可。
8。并发版本控制(concurent versions system CVS),是一种功能强大的版本控制系统,帮助管理大型团队参与的
设计工程。
9。记录日志是报告程序运行信息的处理过程。老式的调试方式是:
if(debug)
System.out.println("debug infomation");
方法不灵活,且需要重复编译。JDK1.4中记录日志API提供了一种更成熟完善的工具。
10。记录API提供了多个报告基本从高到低是OFF-SEVERE-WARNING-INFO-CONFIG-FINE-FINER-FINESET
ALL。日志API几个重要的概念:信使对象LogRecord,它的任务仅仅使将信息从一个地方传送到另一个地方。
处理器Handler,日志输出的目的地。过滤器Filter,格式器Formatter.
11。调试器JDB,概念上像GNU的GDB,是一种命令行调试器。图形化的调试工具会更方便调试,使用eclipse。