文章插图
文章插图
【java的测试工具 java软件测试工具】junit是一个优秀的开源的java单元测试框架,也是目前比较流行且使用频率比较高的一款,今天我们就来讲讲junit怎么用 。junit主要用于白盒测试、回归测试、单元测试 。
首先我们来新建工程,还是跟原来一样建立 。建立之后看看pom.xml文件,已经默认的加入了junit的依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
看看我们建立的工程,idea都给我们生成了什么样的目录结构我们的junit单元测试文件就放在test/java下面,我们先看一个基础用法,在Lesson9ApplicationTest里面增加一个方法:
@[email protected](SpringRunner.class)//使用SpringRunner加载上下文publicclassLesson9ApplicationT[email protected]//这个是一个test单元测试文件publicvoidtest1(){intnum=newInteger(1);Assert.assertEquals(num,1);}}
在这个方法的左边会有响应的图标,第一个叶子样的图标标注这个是一个springboot的测试文件,在启动的时候能看到我们正常启动Application的banner图标,说明加载了springboot的上下文 。我们直接在第二个圆形√加三角形的图标点击,就能运行了 。
[email protected]:标识为JUnit的运行环境;@SpringBootTest:获取启动类、加载配置,确定装载Spring Boot;@Test:声明需要测试的方法;@BeforeClass:针对所有测试,只执行一次,且必须为static void;@AfterClass:针对所有测试,只执行一次,且必须为static void;@Before:每个测试方法前都会执行的方法;@After:每个测试方法前都会执行的方法;@Ignore:忽略方法;
[email protected],[email protected],[email protected]
上面的代码有一个陌生的Assert断言,这个东西是干嘛的呢,简单的可以理解为if条件 。断言里面的值应该返回什么样的值 。Assert.assertEquals(num,1) 。
这个你可以理解为if(num==1)System.out.println(“ok”);但是这个方法有很多种重载的类
assertTrue/False 判定第一个条件是true还是falseassertEquals 接收两个参数,第一个是参数值,第二个是希望返回的值assertNotEquals 这个跟上一个方法恰好相反,相当于if(param!=param2)assertSame/NotSame 判定两个变量是否指向同一个内存地址
@Testpublicvoidtest2(){List<String>list1=Arrays.asList("a","b");List<String>list2=Arrays.asList("a","b");List<String>list3=list2;Assert.assertEquals(list1,list2);//通过Assert.assertEquals(list3,list2);//通过Assert.assertSame(list3,list2);//通过Assert.assertSame(list1,list2);//不通过,因为list1和list2分别指向不同的内存地址}
web模拟[email protected]?
@SpringBootTest(webEnvironment=SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutowiredprivateTestRestTemplatetestRestTemplate;@Testpublicvoidtest3()throwsURISyntaxException{Stringresult=testRestTemplate.getForObject("/demo/test1",String.class);Assert.assertEquals(result,"hellojunittest");}
TestRestTemplate 是不是很熟悉,是的Springboot还为RestTemplate建立了专门的测试类 。注意:一定要使用随机端口启动,否则执行失败 。但是笔者感觉这个专门写个测试类很麻烦,还不如直接使用postman测试,你们觉得呢?数据库测试
@[email protected](){Useruser=newUser();user.setName("abc");user.setAge(19);user.setBirthday(newDate());userJpa.save(user);Assert.assertTrue(user.getId()!=null);Assert.assertNotNull(user.getId());}
注意:如果不想污染数据库,[email protected],执行成功之后数据库事务会回滚,不会将数据真正插入到数据库中 。idea为我们快速的创建test单元测试文件提供了快捷方式
选中需要进行单元测试的方法,右键–>go to–>Test就会为我们创建单元测试文件 。
- mysql找出重复的数据 mysql重复数据查询
- 服务器的主机名是什么意思 主机名和服务器名
- 张一山的父母是做什么的 张一山父亲张晓武真实身份
- Access和Excel的区别 excel和access哪个实用
- 姓名的正则 正则 取名
- 单机PC游戏推荐 好玩的单机游戏pc推荐
- 蚕豆炒多久熟
- 吃什么补阳虚_补阳虚的食物
- 麻花汤的做法
- 什么是ASO aso的作用是什么