java - 进入测试

标签 java unit-testing testing

我现在处于对使用 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 交互。在那种情况下,您需要一个处于已知状态的数据库。我想到了三种方法:

  1. 在每次测试执行开始时恢复数据库备份。
  2. 使用dbunit ,它提供了自己的状态维护机制。
  3. 带回滚的事务锁定。 Wrap 整个案例用 try{}finally{} 包装,后者总是回滚事务。

关于java - 进入测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664337/

相关文章:

testing - Karate vs 史波克

java - 更改 Build.gradle 文件后出现构建失败错误并出现异常

java - JAutodoc:getter 注释模板与默认注释行为合并

unit-testing - 这是典型的单元测试经验吗?

java - 使用 Mockito 进行单元测试时避免 final方法?

java - 使用反射从列表中获取对象

html - 有测试网站吗?

java - 动画排序算法

java - 当它是一个整数时,没有字符串参数构造函数/工厂方法从字符串值反序列化

python - 如何构建相互构建的 Nose 单元测试?