您的位置:首页 > 职场人生

黑马程序员----JAVA基础之junit测试框架

2013-04-28 20:31 387 查看

------ android培训java培训、期待与您交流!----------

junit测试框架一、junit测试框架简述JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。二、junit测试框架的用途可以让我们在编写代码的过程中,可以不断进行测试,而不需要主方法,且可以在方法测试前后都加上要执行的方法,也可以在这个类测试前后都加上要执行的代码,用于启动一些测试方法前都需要的条件,及放于测试后常用于释放资源.并且,可以断言测试,也就是测试一个方法是否可以得到你想要的返回值.三、junit测试框架的使用1.测试一个方法是否正常
import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;//导入Junit包public class Test15 {@Test//加注解,表示把程序交给Junit运行.public  void print() {char c =(char)65;System.out.println(c);}}
2.在每个方法测试前后都运行自定义方法.
char c;@Before//方法运行前先执行的方法public void before(){c =(char)65;} @Test//加注解,表示把程序交给Junit运行.public  void print() {System.out.println(c);}@After//方法运行后void after(){System.out.println("after");}
3.在类加载前后运行,注意:都要是static
static char c;@BeforeClass //只类加载前运行一次public static void before(){c =(char)65;}@Test//加注解,表示把程序交给Junit运行.public  void print() {System.out.println(c);}@AfterClass//类加载后运行一次public static void after(){System.out.println("after");}
4.断言判断某个方法的结果是不是你想要的,第一个参数表示你期望的结果.有好多方法,例:
@Testpublic  void test() {Print p = new Print();//断言 判断某个方法的结果是不是你想要的,第一个参数表示你期望的结果.有好多方法,这例如Assert.assertEquals("a", p.print());}}class Print{public String print(){return "a";}}测试方法运行的时间@Test(timeout=200)public void testFindUser() {//以下进行多次断言,判断各种情况下是否准确User user=dao.findUser("张三", "123");assertNotNull(user);user=dao.findUser("张三", "22");assertNull(user);user=dao.findUser("22", "123");assertNull(user);user=dao.findUser("22", "13");assertNull(user);}
四、junit测试框架何时使用在编写程序的时候,我们为了减少发后的维护压力,让代码边编写边测试.五、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). 确保测试代码与时间无关

------ android培训java培训、期待与您交流!----------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: