1.如何编写可测试的代码1、勿将对象的构建与应用逻辑混合在一起 。
通常在写UT时 , 你需要实例化程序的一部分(理想情况是只有所测类) , 给对象一些输入 , 最后对对象的行为进行判定 。为了能单独的实例化一个类 , 我们需要确保这个类不实例化其它的类(这些类不再实例化更多的类 , 以此类推) , 许多开发人员喜欢将new 操作符穿插在应用逻辑代码当中 。
为了使你的代码具备可测试性 , 你需要两种类 。第一种是工厂类 , 这些类包含了大量的 new 操作符 , 它们负责为你的程序生产类 , 不做其它的事情 。
另一种是应用逻辑类 , 它不包含 new 操作符 , 只包含应用逻辑 。事实上 , 测试的目的就是为了测试应用逻辑 。
当应用逻辑中去除了 new 操作符之后 , 对象的创建就变得很容易 , 于是我们可以在测试中替换这些依赖(Mocks) 。
2.怎么写Java测试代码可以用main函数和JUnit来写测试代码 。main是最早使用的 , 但是现在更流行的测试工具是JUnit 。
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. 使用文档生成器做测试文档 。
3.如何写junit测试代码下面是一些具体的编写测试代码的技巧或较好的实践方法: 网管联盟bitsCN_com
1. 不要用TestCase的构造函数初始化Fixture , 而要用setUp()和tearDown()方法 。
2. 不要依赖或假定测试运行的顺序 , 因为JUnit利用Vector保存测试方法 。所以不同的平台会按不同的顺序从Vector中取出测试方法 。
- 耸组词和拼音 耸组词和拼音和大写字母
- 安卓手机如何省电 安卓手机怎么节省电量
- 怎样上淘宝网购物 如何使用淘宝购物
- 银行卡如何绑定手机 手机银行怎么绑定卡
- 步步惊心大结局 步步惊心大结局若曦写给四爷的信
- 乌鸦为什么像写字台是什么意思 乌鸦为什么像写字台是什么意思?
- 房产增值税如何计算 房产增值税如何计算 上海
- 如何养好富贵竹 如何养好富贵竹水培
- 电脑花屏是怎么回事 电脑花屏是怎么回事,如何处理
- 农村如何创业 农村如何创业视频