杭州俄语网站建设,net网站开发学习,网站建设客户分析调查表,永州做网站公司目录
1.概述
2.断言
3.常用注解
3.1.Test
3.2.Before
3.3.After
3.4.BeforeClass
3.5.AfterClass
4.异常测试
5.超时测试
6.参数化测试 1.概述
什么是单元测试#xff1a;
单元测试#xff0c;是针对最小的功能单元编写测试代码#xff0c;在JAVA中最小的功能单…目录
1.概述
2.断言
3.常用注解
3.1.Test
3.2.Before
3.3.After
3.4.BeforeClass
3.5.AfterClass
4.异常测试
5.超时测试
6.参数化测试 1.概述
什么是单元测试
单元测试是针对最小的功能单元编写测试代码在JAVA中最小的功能单元是方法单元测试针对JAVA就是单个方法的测试。目的就是保证单个方法的正常运行。
JUnit是什么
专门针对java语言设计使用广泛的一个标准单元测试框架。使用断言注解的方式对单个方法进行测试。注解用来控制行为断言用来进行判断。
2.断言
名称说明示例assertEquals相等assertEquals(100,x)assertArrayEquals数组相等assertArrayEquals({1,2,3},x)assertEquals浮点数相等assertEquals(3.1415926,x)assertNullnullassertNull(x)assertTruetrueassertTrue(x0)assertFalsefalseassertFalse(x0)assertNotEquals不相等assertNotEquals(100,x)assertNotNull不为空assertNotNull(x)
3.常用注解
3.1.Test
Test用来注解单个测试用例每个Test就是个独立的单元单个Test的生命周期是相互独立的。
代码示例
public class Demo1Test {Demo1 demo1;public Demo1Test(){System.out.println(建立测试用例);}Beforepublic void before(){System.out.println(测试开始);demo1new Demo1();}Testpublic void testSum1(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Testpublic void testSum2(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Afterpublic void after(){System.out.println(测试结束);}
}
测试结果 3.2.Before
BeforeTest之前执行一般用于准备一些资源。
代码示例
public class Demo1Test {Demo1 demo1;Beforepublic void before(){demo1new Demo1();}Testpublic void testSum(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}
}
3.3.After
AfterTest之后执行一般用于释放一些资源。
代码示例
public class Demo1Test {Demo1 demo1;Beforepublic void before(){demo1new Demo1();}Testpublic void testSum(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Afterpublic void after(){System.out.println(测试结束);}
}
3.4.BeforeClass
BeforeClass作用于类层面修饰静态方法整个类的生命周期中只在类的生命周期开始的时候执行一次。
一般用于准备一些所有用例共享的资源。
代码示例
public class Demo1Test {Demo1 demo1;BeforeClasspublic static void beforeClass(){System.out.println(beforeClass......);}public Demo1Test(){System.out.println(建立测试用例);}Beforepublic void before(){System.out.println(测试开始);demo1new Demo1();}Testpublic void testSum1(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Testpublic void testSum2(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Afterpublic void after(){System.out.println(测试结束);}
}
运行结果 3.5.AfterClass
AfterClass作用于类层面修饰静态方法整个类的生命周期中只在类的生命周期结束的时候执行一次。
一般用于销毁一些所有用例共享的资源。
代码示例
public class Demo1Test {Demo1 demo1;BeforeClasspublic static void beforeClass(){System.out.println(beforeClass......);}public Demo1Test(){System.out.println(建立测试用例);}Beforepublic void before(){System.out.println(测试开始);demo1new Demo1();}Testpublic void testSum1(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Testpublic void testSum2(){Assert.assertEquals(65,demo1.sum(5,2,4,6));}Afterpublic void after(){System.out.println(测试结束);}AfterClasspublic static void afterClass(){System.out.println(afterClass......);}
}
运行结果 4.异常测试
通过Test注解的expected属性可以断定该TestCase抛出的异常抛出不匹配的异常会报错。
代码示例
Test(expected NumberFormatException.class)public void testNumberFormat(){Integer.parseInt(null);}
5.超时测试
通过Test注解的timeout属性可以设置每个TestCase执行耗时的时间阈值超时会报错。
代码示例
Test(timeout 3000)public void testNumberFormat(){try {Thread.sleep(4000);} catch (InterruptedException e) {e.printStackTrace();}}
6.参数化测试
Junit提供了输入一组参数进行测试的机制。
代码示例
RunWith(Parameterized.class)
public class ParameterTest {//用于准备一组数据的方法//方法严格约定为 public Collection? data()Parameterized.Parameterspublic static Collection? data(){return Arrays.asList(new Object[][]{{0,0},{1,1},{-1,1}});}int input;int expected;//准备好的数据会在构造方法中自动传递过来public ParameterTest(int input,int expected){this.inputinput;this.expectedexpected;}Testpublic void testAbs(){int rMath.abs(this.input);Assert.assertEquals(this.expected,r);}
}