日期:2014-05-19  浏览次数:20766 次

Juint真的那么强大吗???
本帖最后由 CAREIT 于 2012-12-04 09:50:37 编辑
   我最近学习Juni,不知道是自己学习Junit还少,还是Junit本身有这样的局限,遇到一个问题,就是对于没有返回值的方法如何进行测试。
我所了解的Junit有这样的特性:
     1、用于测试期望结果的断言(Assertion)
    2、用于共享共同测试数据的测试工具
    3、用于方便的组织和运行测试的测试套件
    4、图形和文本的测试运行器
接下来的4个问题分别针对4个特性:
问题一:
    特性一是不是利用assert来结束,并且测试的方法必须有返回值?
         如:
package junitTest;

import static org.junit.Assert.*;
    /*静态引入类*/

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import vectorcs.math;

public class mathTest {

/*@Before
public void setUp() throws Exception {
}*/

@Test
public void testAdd() {
int sum=new math().add(2, 3);         //加法
assertEquals(5, sum);

}

@Test
public void testDiv() {
int sundiv=new math ().div(8,2);     //除法
assertEquals(4, sundiv);
}

}
问题二:是不是有利于多个人测试后的交流?
问题三:是不是指省去了在main方法中写测试方法,和可以通过test suit一起运行多个测试类?
问题四:真心不明白是怎么回事?

问题五:对于没有返回值的方法如何进行测试?
        我看到有这样的教程:写一个测试方法,把这个方法作为测试方法的入口和出口,可行吗?

今天的问题的挺多的,大家知道多少说多少,分照给!谢谢给位了










------解决方案--------------------
junit用的比较少,不过junit可以在不启动服务的情况下来调试一些相关的配置是否正常,比如设计到一些spring,struts,ibatis的相关文件改动都需要重启服务,挺麻烦,可以先自己简单的测试下之后再做启动。


------解决方案--------------------


可以结合ant脚本进行批量测试 和 生成html格式的测试文档。 
------解决方案--------------------
关于junit有一句话:keep the bar green to keep the coder clean
写多了就自然知道好处了
------解决方案--------------------
我建议你理解一下测试驱动开发,我觉得这个工具的作用更大的体现在其中包含的软件工程流程上,它也确实用得不错,得到了程序员和工具商的支持,自然就会火了,
------解决方案--------------------
我觉得你不是不知道junit的使用目的,而是不知道单元测试的目的。
我说下单元测试的几个目的。
1.每个程序员对自己写的程序所有的分支情况都有一个全面的测试,保证自己这部分是正确的。
2.单元测试最好是独立的,这样在程序中增加了另外的分支,可以跑了相关的所有测试,来测试改动的部分是否对以前的部分是否有影响。
3.所有人的单元测试可以在某个时间(很有可能在部署前)全部跑一遍,来减少出现bug的几率。

而junit仅仅是一种工具,有点是写着方便,可以跑集成测试。我不清楚它能否跑前台的单元测试
------解决方案--------------------
1 特性一是不是利用assert来结束,并且测试的方法必须有返回值?

junit最重要就是比较程序的结果与预期的结果是否一致,一般是可以是assert来结束,如果你需要关闭一些资源的话,那就不是
测试的方法必须有返回值, 如果是传参返回的话,那也可以照样测试,如果测试的方法没有返回值,只是将值赋给成员,而且是private的
那么也可以利用反射得到该对象的成员。