JUnit单元测试讲解
Junit4单元测试框架的常用方法介绍

Junit4单元测试框架的常⽤⽅法介绍Junit 介绍:Junit是⼀套框架(⽤于JAVA语⾔),由 Erich Gamma 和 Kent Beck 编写的⼀个回归测试框架(regression testing framework),即⽤于⽩盒测试。
本⽂介绍的内容:1 Junit Myeclipse测试类的⽣成2 JUnit 4 常⽤的⼏个annotation 介绍与使⽤ (@Before @After @Test @Ignore @BeforeClass @AfterClass)3 常⽤的断⾔介绍4 特殊的处理(限时测试,异常测试)5 参数化配置(@Parameters)准备测试代码测试的⽅法(正确、错误⽅法、死循环、抛异常)LogicServicepackage com.logic;public class LogicService {public int add(int x ,int y){ //加法return x+y;}public int sub(int x ,int y){ //减法return x-y;}public int div(int x ,int y){ //除法return x/y;}public int div2(int x ,int y){ //除法做了异常判断try {int z = x/y;} catch (Exception e) {e.printStackTrace();}return x/y;}public void loop(int x ,int y){ //死循环for(;;)x=y;}public void unCompleted(int x ,int y){ //未完成的模块//还在开发中}}⼀ Myeclipse测试类的⽣成1 对需要测试的类点右键 NEW ⼀个Junit Test Case2 点击NEXT注意 1 选择NEW Junit 4 test2 source folder 是默认会填写上之前右键NEW的那个类,如果不是的话,请⾃⾏进⾏修改3 package 默认会填写当前的包名个⼈建议重新开个测试包-即在包后⾯加上.test 表⽰是单元测试⽤例专⽤包与源代码分离4 name 默认会在之前右键NEW的那个类的基础的后⾯加上Test 如果不是的话,建议⾃⾏进⾏修改,便于标⽰5 初始化的⽅法,我⼀般会勾上个setUp,这个请随意。
(2).mybatis单元测试(junit测试)

(2).mybatis单元测试(junit测试)⼀、Junit使⽤步骤:1、创建测试⽬录,(src、测试⽬录是test)2、在测试⽬录test中创建与src中相同的包名3、为需要测试的类创建测试类,例如:UsersMapper,测试类是UsersMapperTest4、为被测试类(UsersMapper)中的需要测试的⽅法在测试类型创建相应的⽅法。
⽐如,需要测试findById⽅法,那么则测试类中创建findById⽅法,测试⽅法的要求a、不能有返回值、不能有参数b、需要只⽤@Test注解对该⽅法进⾏注解。
5、在测试⽅法中,使⽤断⾔对结果进⾏判断,assert,判断⼀。
单元测试1. 在项⽬下创建⼀个⽬录test,之后将test右键Mark Directory as(标记⽬录为)->测试源根2. 在test下创建类,类的包名与被测试类的包名⼀致,在被测试类后⾯加上Test,例如:ersMapper与ersMapperTest。
在测试⽅法前@Test,导⼊junit测试路径,点击确定即可,之后maven后台下载。
3. Mybatis的核⼼对象:SqlSessionFactoryBuilder , SqlSessionFactory , SqlSession。
(SqlSessionFactoryBuilder创建⼯⼚,⼀般只⽤⼀次。
SqlSessionFactory是⼯⼚,⼯⼚长期存在。
SqlSession例如是⼯⼚造的汽车,有时间期限,即使⽤完⼯⼚依旧存在。
) SqlSeessionFactoryBuilder⽤过即丢,可⽤来创建多个SqlSessionFactory实例,并提供多个build⽅法的重载来构建SqlSessionFactory. SqlSession(⼀般瞬时、短链接,也可以长连接,⽤完关闭)build(InputStream inputStream,String environment,Properties properties)build(Reader reader,String environment,Properties properties)build(Configuration config)配置信息以三种形式提供给 SqlessionFactoryld 的build ⽅法:InputStream(字节流) Reader (字符流) Configuration (类)读取XML⽂件构造⽅式:String CONFIG_FILE = "mybatis-config.xml";InputStream resourceAsStream = Resources.getResourceAsStream(CONFIG_FILE);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder().build(resourceAsStream);//⾮静态成员,实例成员,成员变量,通过构造⽅法初始化。
junit+maven单元测试

junit+maven单元测试⼀、概念junit是⼀个专门测试的框架集合maven进⾏单元测试,可批量测试类中的⼤量⽅法是否符合预期⼆、作⽤:单元测试:测试的内容是类中的⽅法,每⼀个⽅法都是独⽴测试的。
⽅法是测试的基本单位。
三、使⽤⽅法1、pom内加⼊依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope></dependency>2、在maven中src/test/java⽬录下的,创建测试程序。
推荐的创建类和⽅法的提⽰:1、测试类的名称:Test+待测试类名2、测试⽅法的名称:Test+⽅法名称例如:你要测试HelloMaven创建测试类TestHelloMaven@Testpublic void testaDD(){测试HelloMaven的add⽅法是否正确}其中testAdd叫做测试⽅法,定义规则:1、⽅法必须是public的2、⽅法必须没有返回值3、⽅法名称⾃定义,推荐是Test+被测⽅法4、⽅法上⾯加上注解@Test四、举例,Hello项⽬1、新建java源程序,存放在Hello\src\main\java\com\testbk⽬录下,取名HelloMaven.java package com.testbk;import org.junit.Assert;import org.junit.Test;public class TestHelloMaven{@Testpublic void testAdd(){System.out.println("maven junit testAdd()===")HelloMaven hello = new HelloMaven();int res = hello.add(10,20);//验证10+20是不是30,juit提供的⽅法,对⽐结果的//assertEquals(期望值,实际值)Assert.assertEquals(30,res)}}2、新建maven测试类型,存放在Hello\src\main\java\com\testbk⽬录下,取名TestHelloMaven.java package com.testbk;import org.junit.Assert;import org.junit.Test;public class TestHelloMaven{@Testpublic void testAdd(){System.out.println("maven junit testAdd()===")HelloMaven hello = new HelloMaven();int res = hello.add(10,20);//验证10+20是不是30,juit提供的⽅法,对⽐结果的//assertEquals(期望值,实际值)Assert.assertEquals(30,res)}@Testpublic void testAdd2(){System.out.println("#####maven junit testAdd()2###");HelloMaven hello = new HelloMaven();int res = hello.add(10,20);//验证10+20是不是30,juit提供的⽅法,对⽐结果的//assertEquals(期望值,实际值)Assert.assertEquals(50,res);}}3、执⾏mvn clean:清理target⽬录[INFO] Scanning for projects...[INFO][INFO] ------------------------< com.testbk:testjava >-------------------------[INFO] Building maven 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO][INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ testjava ---[INFO] Deleting D:\javaProjects\Hello\target[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.196 s[INFO] Finished at: 2021-04-25T22:50:10+08:00[INFO] ------------------------------------------------------------------------4、执⾏mvn compile:编译main/java⽬录下的java为class⽂件,同时把class拷贝到target/classes⽬录下⾯[INFO] Scanning for projects...[INFO][INFO] ------------------------< com.testbk:testjava >-------------------------[INFO] Building maven 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO][INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testjava ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] Copying 0 resource[INFO][INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testjava ---[INFO] Changes detected - recompiling the module![INFO] Compiling 1 source file to D:\javaProjects\Hello\target\classes[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.724 s[INFO] Finished at: 2021-04-25T22:54:23+08:00[INFO] ------------------------------------------------------------------------5、执⾏mvn test-compile:编译test/java⽬录下的java为class⽂件,同时class拷贝到target/test-classes⽬录下⾯[INFO] Scanning for projects...[INFO][INFO] ------------------------< com.testbk:testjava >-------------------------[INFO] Building maven 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO][INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testjava ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] Copying 0 resource[INFO][INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testjava ---[INFO] Nothing to compile - all classes are up to date[INFO][INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testjava ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] Copying 0 resource[INFO][INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testjava ---[INFO] Changes detected - recompiling the module![INFO] Compiling 1 source file to D:\javaProjects\Hello\target\test-classes[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.764 s[INFO] Finished at: 2021-04-25T22:55:43+08:00[INFO] ------------------------------------------------------------------------6、执⾏mvn test:查看测试结果,通过1,失败1,并在指定⽬录⽣成测试报告Results :Failed tests: testAdd2(com.testbk.TestHelloMaven): expected:<50> but was:<30>Tests run: 2, Failures: 1, Errors: 0, Skipped: 0[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.050 s[INFO] Finished at: 2021-04-25T22:57:16+08:00[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project testjava: There are test failures. [ERROR][ERROR] Please refer to D:\javaProjects\Hello\target\surefire-reports for the individual test results.[ERROR] -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] /confluence/display/MAVEN/MojoFailureException7、修改测试代码,并再次执⾏mvn testpackage com.testbk;import org.junit.Assert;import org.junit.Test;public class TestHelloMaven{@Testpublic void testAdd(){System.out.println("=====maven junit testAdd()===");HelloMaven hello = new HelloMaven();int res = hello.add(10,20);//验证10+20是不是30,juit提供的⽅法,对⽐结果的//assertEquals(期望值,实际值)Assert.assertEquals(30,res);}@Testpublic void testAdd2(){System.out.println("#####maven junit testAdd()2###");HelloMaven hello = new HelloMaven();int res = hello.add(30,20);//验证10+20是不是30,juit提供的⽅法,对⽐结果的//assertEquals(期望值,实际值)Assert.assertEquals(50,res);}}查看运⾏结果,测试通过T E S T S-------------------------------------------------------Running com.testbk.TestHelloMaven=====maven junit testAdd()===#####maven junit testAdd()2###Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 secResults :Tests run: 2, Failures: 0, Errors: 0, Skipped: 0[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.282 s[INFO] Finished at: 2021-04-25T22:58:41+08:00 [INFO] ------------------------------------------------------------------------。
junit5单元测试语法

junit5单元测试语法JUnit 5 是Java 编程语言中最新的单元测试框架,用于编写和运行单元测试。
JUnit 5 提供了许多新特性和改进,使得单元测试更加灵活、强大和易于扩展。
以下是关于JUnit 5 单元测试语法的基本介绍:1. 注解(Annotations)JUnit 5 中使用注解来标识测试方法、测试类和执行顺序等信息。
以下是一些常用的注解:•@Test: 标识一个测试方法。
•@BeforeEach: 标识在每个测试方法之前执行的方法。
•@AfterEach: 标识在每个测试方法之后执行的方法。
•@BeforeAll: 标识在所有测试方法之前执行的方法。
•@AfterAll: 标识在所有测试方法之后执行的方法。
•@DisplayName: 设置测试方法的显示名称。
import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;public class MyTests {@Test@DisplayName("My Test")void myTest(){// 测试代码assertEquals(2,1+1);}}2. 断言(Assertions)JUnit 5 提供了一系列的断言方法来验证测试的预期结果。
以下是一些常用的断言:•assertEquals(expected, actual): 验证两个值是否相等。
•assertTrue(condition): 验证条件是否为true。
•assertFalse(condition): 验证条件是否为false。
•assertNull(actual): 验证值是否为null。
•assertNotNull(actual): 验证值是否不为null。
•assertThrows(exceptionType, executable): 验证是否抛出指定类型的异常。
Junit5-单元测试框架总结(基于IntelliJIDEA)

Junit5-单元测试框架总结(基于IntelliJIDEA)⾸先Junit5我觉得它是⼀个测试框架,当你编写完⼀个类之后,需要测试⼀下你写的功能是否正常运⾏。
⼀种⽅法是创建⼀个Main函数来运⾏测试,这个⽅法简单易懂,不过有⼀些不合理的地⽅。
例如图书借阅系统,测试的时候,会有新增记录、查询记录、删除记录、修改记录等等,如果全部写在主函数测试,会使得主函数很乱,即可读性很低。
其⼆在Junit5中测试,每⼀块功能独⽴为⼀个函数,可读性提⾼,逼格也提⾼。
总之,Junit5既然存在,就必定有它"合理"的地⽅,有它的闪光点。
对于我们来说,技多不压⾝,多学⼀门技术总不会错。
扯了这么多,我们⾸先先来尝试⼀下helloworld的⽤法。
后续还会有⼀个Junit5综合项⽬,将在近期发布。
这个是我在2019年11⽉26⽇尝试,运⾏截图、编译环境也是这个时期的。
如果有某⼀步出现了错误,欢迎留⾔,我接受⼤家的Bug,希望本⽂能够帮助更多的童鞋学习了解Junit5,共同提⾼。
第⼀步:创建java解决⽅案,我命名为Junit_test:第⼀步很简单,就是跟普通java⼀样,创建⼀个解决⽅案。
第⼆步:创建⼀个⽂件夹,⽤来放jar⽂件。
我这⾥命名为lib第三步:将这三个jar包复制到lib⽂件夹,然后导⼊到项⽬上⽅为三个jar包的下载地址,全免费,如果⽆法下载请留下邮箱,我看到后会私发拷贝进去之后,如上图所⽰,接下来我们需要真正把它导⼊到项⽬中PS:这⾥要三个包全部选中,点击OKPS_again:这⾥三个勾全部选上,然后OK第四步:创建⼀个包,包下创建⼀个类。
我把包命名为cn.ypc,类名为helloworld package cn.ypc;public class helloworld {public void paint(String str){System.out.println("hello " + str + "!");}}这是⼀个很普通的java类,类内只有⼀个⽅法,即传⼊⼀个字符串,输出 hello 加这个字符串第五步:同第⼆步创建⼀个test的⽂件夹,⽤于存放测试函数,然后标记为测试类⽂件夹此时test⽂件夹会变成淡绿⾊,如下图所⽰打开helloworld.java⽂件,同时按下ctrl + shift + T要在类内部点哦,在外⾯点没⽤的勾选上这个paint需要测试的函数,点击OK然后对代码进⾏相应的修改package cn.ypc;import org.junit.*;public class helloworldTest {helloworld helloworld;@Testpublic void paint() throws Exception{helloworld = new helloworld();helloworld.paint("ypc");helloworld.paint("yuyao");helloworld.paint("zwz");}}@Test表明下⾯的函数是测试的函数,可以在⾥⾯测试helloworld类⾥⾯的paint函数。
java编程之单元测试(Junit)实例分析(附实例源码)

java编程之单元测试(Junit)实例分析(附实例源码)本⽂实例讲述了java编程之单元测试。
分享给⼤家供⼤家参考,具体如下:完整实例代码代码点击此处。
在有些时候,我们需要对我们⾃⼰编写的代码进⾏单元测试(好处是,减少后期维护的精⼒和费⽤),这是⼀些最基本的模块测试。
当然,在进⾏单元测试的同时也必然得清楚我们测试的代码的内部逻辑实现,这样在测试的时候才能清楚地将我们希望代码逻辑实现得到的结果和测试实际得到的结果进⾏验证对⽐。
废话少说,上代码:⾸先创建⼀个java⼯程,在⼯程中创建⼀个被单元测试的Student数据类,如下:package com.phicomme.hu;public class Student{private String name;private String sex;private int high;private int age;private String school;public Student(String name, String sex ,int high, int age, String school){ = name;this.sex = sex;this.high = high;this.age = age;this.school = school;}public String getName(){return name;}public void setName(String name){ = name;}public String getSex(){return sex;}public void setSex(String sex){this.sex = sex;}public int getHigh(){return high;}public void setHigh(int high){this.high = high;}public int getAge(){return age;}public boolean setAge(int age){if (age >25){return false;}else{this.age = age;return true;}}public String getSchool(){return school;}public void setSchool(String school){this.school = school;}}在eclipse下单元测试这个类:⾸先导⼊Junit包:选中java⼯程,点击⿏标右键--->选择properties---->在窗⼝中选Java Build Path---->在右侧点击Add Library---->在弹出的窗⼝列表中选中Junit---->下⼀步----->Junit 4(我⽤的是Junit 4)---->finish这样Junit 4包就导完了,接下来就是创建测试类:将测试类和被测试类放在不同的包中(也可以放在同⼀个包中,此处只是为了区别),代码如下:测试类1:package com.phicomme.test;import com.phicomme.hu.Student;import junit.framework.TestCase;public class StudentTest01 extends TestCase{Student testStudent;//此⽅法在执⾏每⼀个测试⽅法之前(测试⽤例)之前调⽤@Overrideprotected void setUp() throws Exception{// TODO Auto-generated method stubsuper.setUp();testStudent = new Student("djm", "boy", 178, 24, "华东政法");System.out.println("setUp()");}//此⽅法在执⾏每⼀个测试⽅法之后调⽤@Overrideprotected void tearDown() throws Exception{// TODO Auto-generated method stubsuper.tearDown();System.out.println("tearDown()");}//测试⽤例,测试Person对象的getSex()⽅法public void testGetSex(){assertEquals("boy", testStudent.getSex());System.out.println("testGetSex()");}//测试Person对象的getAge()⽅法public void testGetAge(){assertEquals(24, testStudent.getAge());System.out.println("testGetAge()");}}测试类2:package com.phicomme.test;import junit.framework.TestCase;import com.phicomme.hu.Student;public class StudentTest extends TestCase{private Student testStudent;@Overrideprotected void setUp() throws Exception{// TODO Auto-generated method stubsuper.setUp();testStudent = new Student("steven_hu", "boy", 170 , 23, "上海理⼯");}@Overrideprotected void tearDown() throws Exception{// TODO Auto-generated method stubsuper.tearDown();}public void testSetage(){assertTrue(testStudent.setAge(21));}public void testGetSchool(){//预期值和实际值不⼀样,测试时出现失败(Failure)assertEquals("南昌⼤学", testStudent.getSchool());}public void testGetName(){assertEquals("hdy", testStudent.getName());}}当然,如果同时需要⼀起测试以上这两个测试类,可以通过TestSuite类实现,它相当于是⼀个套件,可以把所有测试类添进来⼀起运⾏测试;代码如下:package com.phicomme.test;import com.phicomme.hu.StudentTest02;import junit.framework.Test;import junit.framework.TestSuite;public class AllTest{//static PersonTest p = new PersonTest();//static PersonTest p1 = new PersonTest();public static Test suite(){TestSuite suite = new TestSuite("Test for com.phicomme.test");//suite.addTest(p);//suite.addTest(p1);suite.addTestSuite(StudentTest.class);suite.addTestSuite(StudentTest01.class);return suite;}}最后,分别测试以上三个类(选中需要测试的类---->⿏标右键---->Run As---->Junit Test):StudentTest类的测试结果图:StudentTest01类的测试结果图:AllTest类的测试结果图:有关java的测试就讲到这⾥,希望对⼤家有帮助,有时间也会接着讲讲有关android的单元测试,和在⼿机上实现编写⼀个UI 界⾯替代eclipse如上图中的测试界⾯;希望本⽂所述对⼤家Java程序设计有所帮助。
junit用法

junit用法Junit是一个Java语言的单元测试框架,它可以帮助开发人员快速、方便地编写和运行测试用例。
在软件开发过程中,单元测试是非常重要的一环,它可以帮助开发人员及时发现代码中的问题,提高代码质量和可维护性。
本文将介绍Junit的用法,包括如何编写测试用例、运行测试用例和使用Junit的一些高级特性。
一、编写测试用例在使用Junit进行单元测试时,我们需要编写测试用例。
测试用例是一段代码,用于测试被测试代码的某个功能是否正确。
下面是一个简单的测试用例示例:```import org.junit.Test;import static org.junit.Assert.assertEquals;public class CalculatorTest {@Testpublic void testAdd() {Calculator calculator = new Calculator();int result = calculator.add(2, 3);assertEquals(5, result);}}```在上面的示例中,我们使用了Junit的@Test注解来标记测试用例方法。
在测试用例方法中,我们创建了一个Calculator对象,并调用了它的add方法来计算2+3的结果。
然后,我们使用Junit的assertEquals方法来判断计算结果是否等于5。
如果结果不等于5,测试用例将会失败。
二、运行测试用例在编写好测试用例后,我们需要运行它们来验证被测试代码的正确性。
Junit提供了多种运行测试用例的方式,包括在IDE中运行、使用命令行运行和使用构建工具运行。
下面是在IDE中运行测试用例的步骤:1. 在IDE中打开测试类文件。
2. 点击测试类文件中的“Run”按钮或右键点击测试类文件并选择“Run As”->“JUnit Test”。
3. 等待测试运行完成,查看测试结果。
如果测试用例全部通过,将会显示绿色的“OK”标志;如果有测试用例失败,将会显示红色的“Failures”标志,并列出失败的测试用例。
junit单元测试步骤

junit单元测试步骤:1、导入包junit测试包:JUnit测试版本,3.81版,4.0版,导入对应的jar包; 2、写一个类扩展(继承) TestCase; 3、在需要测试的方法名前加test生成新的测试方法;4、运行测试,用断言(assert***)的方法测试成功(显示绿色)或失败(显示红色),或者自己判断结果正确与否。
junit单元测试:
1、单元测试(unittesting),是在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。
2、单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
3、单元测试会为我们的承诺做保证。
编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。
在实践工作中,进行了完整计划的单元测试和编写实际的代码所花费的精力大致上是相同的。
一旦完成了这些单元测试工作,很多Bug将被纠正,在确信他们手头拥有稳定可靠的部件的情况下,开发人员能够进行更高效的系统集成工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谢谢!
编写测试方法前的准备工作
实例化一个UserInfoDaoImpl对象
导包
增删改查之"增"
返回值为空
查询出插入值
断言(获取的值与插入值相同) 测试成功
增删改查之"查"
查找方法 测试查找方法: 必须重新插入值再更改. (测试方法是相对独立的,
不能使用前一个测试的输 入或输出,最好不要存在 耦合) 测试不能在数据库中 存在垃圾数据,需要 清除测试数据
增删改查之"改"
流程: 插入数据->取出数据->验证插入正确-> 修改数据->重新获取数据->断言
增删改查之"删"
流程: 插入->删除->断言
所有的测试结果
JUnit的注意事项
1.JUnit仅仅只是告诉你,你所编写的方法能否执行,而不会 去管其他的约束。 2.JUnit没有报错不能证明你是对的,而只是证明你没有错。
JUnit4.x标签
• JUnit4.x支持注解配置,不需要继承TestCase类。使用注解标 签。导入相应的包即可。
•
• • • • • • • • •
常用标签:
@Test测试方法 @BeforeClass 在测试初始化时执行一次(必须是public和static的) @Before每次执行@Test方法测试前执行(主要用于初始化) @Ignore忽略测试(该测试不执行) @After每次执行@Test方法测试后执行(主要用于清理资源) @AfterClass所有测试结束后执行(必须是public和static的) @Test(timeout = *)显示测试 timeout毫秒数 @Test(expected=*.class)测试异常expected异常类 @SuiteClasses打包测试
进入Test
• 现阶段使用Junit主要是为了测试dao层的增删改查等方法是否可以正常执行
第一个测试:
测试JDBC连接数据库
断言:assert
断言:期望值与测试值是否相同
1.assertEquals();8个重载,用于查看对象中存的值是否是期望值,与字符串 比较中的equals()类似。 2.assertFalse()和assertTrue();2个重载,用于测试返回值为boolean类型 3.assertSame()和assertNotSame();2个重载,用于比较两个对象的引用是否 相等和不相等。类似==和!=比较对象。 4.assertNull()和assertNotNull();2个重载,用于查看对象是否为空和不为空 5.fail用于抛出错误,终止测试。
JUnit单元测过程中要进行的最低级别的测试活动。
• 是需要与开发同步进行的工作。 • 属于编码的一部分。有程序员自己完成。 • 是为了确保类的某一个特定方法能成功执行一系列特定的 任务。每个测试都确保只要给定输入,方法将输出预期的 结果。
单元测试测什么?
• 右击项目-->选择Build Path-->选择configure BulidPath • --->Add Library-->JUnit-->JUnit4-->finish
创建项目下的test
1.在项目下创建一个source folder文件夹。(命名为test) 2.在test中创建与src文件夹相对应的包。(包名相对应) 3.Junit的命名方法:(1)测试类命名 *Test.java (2)测试方法需要满足的条件 : public的 void的 无方法参数的 方法名以test开头 后面加上要测试的方法 <同方法的多个测试方法用数字区分>
通过单元测试检测:
1.函数、过程或完成某一功能的程序块。 2.类的成员函数 3.核心方法及可能引入错误的地方 4.特定的边界条件
5.复杂算法
6.复杂的业务逻辑
7.需求变动频繁之处
认识JUnit
• JUnit是一个帮助开发人员测试Java代码的测试框架 • 是Java的测试标准 • 开源
eclipse下设置JUnit