设计一个网站需要什么,海口双语网站建设,wordpress下载远程图片,做文案应该关注的网站推荐一、介绍 JUnit是一款优秀的开源Java单元测试框架#xff0c;也是目前使用率最高最流行的测试框架#xff0c;开发工具Eclipse和IDEA对JUnit都有很好的支持#xff0c;JUnit主要用于白盒测试和回归测试。 白盒测试#xff1a;把测试对象看作一个打开的盒子#xff0c;程序…一、介绍 JUnit是一款优秀的开源Java单元测试框架也是目前使用率最高最流行的测试框架开发工具Eclipse和IDEA对JUnit都有很好的支持JUnit主要用于白盒测试和回归测试。 白盒测试把测试对象看作一个打开的盒子程序内部的逻辑结构和其他信息对测试人 员是公开的 回归测试软件或环境修复或更正后的再测试 单元测试最小粒度的测试以测试某个功能或代码块。一般由程序员来做因为它需要知道内部程序设计和编码的细节 JUnit GitHub地址github.com/junit-team 二、JUnit使用 开发环境 Spring Boot 2.0.4 RELEASEJUnit 4.12MavenIDEA 2018.22.1 检测JUnit依赖 如果是Spring Boot项目默认已经加入了JUnit框架支持可在pom.xml中查看 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope
/dependency
复制代码如果Maven项目中没有添加JUnit依赖可参照如上代码手动添加。 2.2 基础使用 简单的测试代码如下 RunWith(SpringRunner.class)
SpringBootTest
public class SimpleTest {Testpublic void doTest() {int num new Integer(1);Assert.assertEquals(num, 1);}
}
复制代码在测试类中邮件运行项目效果如下 从控制台可以看出测试通过了。 2.3 注解说明 2.3.1 注解列表 RunWith标识为JUnit的运行环境SpringBootTest获取启动类、加载配置确定装载Spring BootTest声明需要测试的方法BeforeClass针对所有测试只执行一次且必须为static voidAfterClass针对所有测试只执行一次且必须为static voidBefore每个测试方法前都会执行的方法After每个测试方法前都会执行的方法Ignore忽略方法2.3.2 超时测试 代码如下给Test设置timeout属性即可时间单位为毫秒 Test(timeout 1000) 2.4 断言测试 断言测试也就是期望值测试是单元测试的核心也就是决定测试结果的表达式Assert对象中的断言方法 Assert.assertEquals 对比两个值相等Assert.assertNotEquals 对比两个值不相等Assert.assertSame 对比两个对象的引用相等Assert.assertArrayEquals 对比两个数组相等Assert.assertTrue 验证返回是否为真Assert.assertFlase 验证返回是否为假Assert.assertNull 验证nullAssert.assertNotNull 验证非null代码示例如下 Test
public void doTest() {String[] string1 {1, 2};String[] string2 string1;String[] string3 {1, 2};Assert.assertEquals(string1, string2);Assert.assertEquals(string2, string3);Assert.assertSame(string1, string2);Assert.assertSame(string2, string3); //验证不通过string2、string3指向的引用不同
}
复制代码2.5 Web模拟测试 在Spring Boot项目里面可以直接使用JUnit对web项目进行测试Spring 提供了“TestRestTemplate”对象使用这个对象可以很方便的进行模拟请求。 Web测试只需要进行两步操作 在SpringBootTest注解上设置“ebEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT”随机端口使用TestRestTemplate进行post或get请求示例代码如下 RunWith(SpringRunner.class)
SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT)
public class UserControllerTest {Autowiredprivate TestRestTemplate restTemplate;Testpublic void getName() {String name restTemplate.getForObject(/name, String.class);System.out.println(name);Assert.assertEquals(Adam, name);}
}
复制代码其中getForObject的含义代表执行get请求并返回Object结果第二个参数设置返回结果为String类型更多的请求方法 getForEntityGet请求返回实体对象可以是集合postForEntityPost请求返回实体对象可以是集合postForObjectPost请求返回对象2.6 数据库测试 在测试数据操作的时候我们不想让测试污染数据库也是可以实现的只需要添加给测试类上添加“Transactional”即可这样既可以测试数据操作方法又不会污染数据库了。 示例代码如下 Test
Transactional
public void saveTest() {User user new User();user.setName(Adam);user.setAge(19);user.setPwd(123456);userRepository.save(user);System.out.println(userId: user.getId());Assert.assertTrue(user.getId()0);
}
复制代码执行效果如下 我们可以看到Id有了也测试通过了说明数据是添加是正常的但查看数据库发现数据里面是没有这条数据的。 如果把“Transactional”去掉的话数据库就会正常插入了。 2.7 Idea快速开启测试 在Idea里面可以快速的添加测试的方法只需要在要测试的类里面右键选择“GoTo”点击“Test”选择你需要测试的代码点击生成即可如果是Windows 用户可以使用默认快捷键“Ctrl Shift T”效果如下图 选完方法之后点击OK按钮就生成了对应的测试代码用户只需要完善框架里面的具体测试逻辑就可以了。