我现在处于对使用 Java 进行编程/开发有相当好的理解的阶段。
谁能告诉我开始使用测试包的最佳方式?我看过 Hibernate,但不确定该去哪里......
我在Mac OS X上用的是Eclipse 3.5,是不是写脚本测试方法的情况?什么是单元测试?等等
我从哪里开始?
非常感谢。亚历克斯
最佳答案
什么是单元测试
Unit testing正在编写代码(即测试代码),将已知输入传递给被测代码,然后验证被测代码返回预期输出。这是您可以对应用程序执行的最精细的测试。为了使其更容易,通常使用单元测试框架。对于 Java,JUnit是最受欢迎的,但是TestNG也是值得注意的。
开始
单元测试框架提供用于测试执行、验证和结果报告的工具。对于您的设置,Eclipse has built in support for JUnit . Eclipse 能够在 IDE 中自动检测测试、编译测试和被测代码、执行测试和报告结果。此外,失败被报告为可点击的堆栈跟踪信息,它在给定的行号处加载相应的文件。
模拟对象
你也在使用 Hibernate,建议你也调查 a mock object framework以及 - 例如 jMock .模拟对象通常被替换为测试组合下的代码的一部分,并有两个目的:(1) 返回已知输出和 (2) 记录它们已被调用以及单元测试如何自省(introspection)该信息作为验证的一部分。
使用 Mock 对象使测试更容易的能力取决于 dependency injection .那是组成被测对象的其他实体。这个想法是解耦依赖项(例如 Hibernate),以专注于测试操作您正在使用的数据的算法。
数据库
但是,如果您的代码并不容易refactored ,或者您可能想要验证数据库代码,您也可以测试 Hibernate 交互。在那种情况下,您需要一个处于已知状态的数据库。我想到了三种方法:
- 在每次测试执行开始时恢复数据库备份。
- 使用dbunit ,它提供了自己的状态维护机制。
- 带回滚的事务锁定。 Wrap 整个案例用
try{}finally{}
包装,后者总是回滚事务。
关于java - 进入测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664337/