jUnit4初探(1)

   junit4的最大特色就是比之前的版本更加人性化。主要利用的是jdk5特有的Annotation,提供一些本来不属于程序的数据。Annotation使用@annotation的形式应用于代码(类、方法以及属性)。

   @Before表示在测试程序执行之前先执行的代码块,但如果涉及到文件的读写操作,每一次执行都会打开、关闭文件,会影响程序速率。我们希望在所有测试之前读一次文件,在所有测试完成之后释放文件,而不是每次测试都读文件。junit4提出了@BeforeClass和@AfterClass,只是需要注意的是,每个类智能有一个方法被标注为@BeforeClass或AfterClass,且该方法必须是public以及static类型。

   关于静态导入。在import关键字后面加上static关键字即可,就可以把后面类的静态方法和字段导入。

   关于run方法。jUnit框架如何运行你的测试代码呢?答案是Runner。@RunWith是修饰类的。jUnit中有多个Runner方法,系统默认的@RunWith(TestClassRunner.class)。二是@RunWith(Parameterized.class),即参数化测试。假如某个方法在许多区域有参数,以成绩为例,返回值分别为(优秀、良好、一般、不及格等),则需要写4个以上的例子,这确实是一件比较麻烦的事情。告诉框架运行方法之后,我们需要提供一个参数列表,以@Parameters修饰,该方法随意命名。下一步即构造方法。三是打包测试。打包测试将需要运行的测试类集中起来,一次性测试。不过需要重写一个类,以@RunWith(Suite.class) @Suite.SuiteClasses({..,..需要测试的类}),类方法为空。

  codeview:

 1 @Before
 2     public void setUp() throws Exception {
 3         cc.clear();
 4     }
 5 
 6     @Test
 7     public void testAdd() {
 8         cc.add(2);
 9         cc.add(3);
10         assertEquals(5, cc.getResult());
11     }
12 
13     @Test
14     public void testSubstract() {
15         cc.substract(3);
16         cc.substract(3);
17         assertEquals("fucking wrong!",0, cc.getResult());
18     }
19     @Ignore
20 //    @Test
21     public void  testSqrt(){
22         cc.sqrt(param);
23         assertEquals(result,cc.getResult());
24     }
我不断的寻找
原文地址:https://www.cnblogs.com/yNds/p/4319192.html