文章标题
一: 前言
二: 常见的测试种类
三: JMockit的定义
四: JMockit常用知识讲解
五: JMockit实战
五: 总结
温馨提示: 本文总共4032字,阅读完大概需要4-5分钟,希望您能耐心看完,倘若你对该知识点已经比较熟悉,你可以直接通过目录跳转到你感兴趣的地方,希望阅读本文能够对您有所帮助,如果阅读过程中有什么好的建议、看法,欢迎在文章下方留言或者私信我,您的意见对我非常宝贵,再次感谢你阅读本文。
一: 前言
二: 常见的测试种类
三: JMockit的定义
四: JMockit常用知识讲解
一: JMockit常用的知识点
二: JMockit常用API注解及区别
五: JMockit实战
(一) 引入依赖坐标(JUnit4.x及以下用户特别注意事项,如果你是通过mvn test来运行你的测试程序 , 请确保JMockit的依赖定义出现在JUnit的依赖之前,否则会报错):
<!-- https://mvnrepository.com/artifact/org.jmockit/jmockit --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>${jmockit.version}</version> </dependency>
(二) 构建需要测试的测试类
// 测试数据类,常规来说我们如果想调用这些方法则需要通过Mybatis或者其数据层操作组件才能够调用 // 但测试通过JMockit可以Mock一个Dao对象,来完成我们的需求 public interface UserDao { Integer deleteUser(Integer id); User getUserById(Integer id); List<User> getUserList(); Integer insertUser(User user); Integer updateUser(User user); Integer test(Integer test); }
(三) 书写测试类:
public class JmockitDemo { // 这是一个测试属性,使用Mock标识,表示UserDao的它的实例化,属性赋值, // 方法调用的返回值全部由JMockit来接管,可以通过录制行为来控制属性中的行为 @Mocked UserDao userDao; @Test public void testSeletById(){ User users = new User(19); /** * 步骤: * 1、录制行为-Record,设置预期值 * 2、重放行为-replay,查看预期值 * 3、校验行为-verification,用于查看程序执行是否跟自己设想一直 * 注意事项: * 你录制多少个行为,就需要在下面播放多少个行为,否则会报错: Missing 1 invocation to(缺少预期行为的调用) */ // 可以录制多个行为 new Expectations(){ { // 加上删除用户时传入12,我预期返回的结果是result后的值 userDao.deleteUser(12); // result表示执行上面的行为后,预期返回的结果 result = 123; userDao.getUserById(13); // result表示执行上面的行为后,预期返回的结果 result = new User(12); userDao.getUserList(); List<User> a= new ArrayList<>(); User user = new User(123); User user1 = new User(124); a.add(user); a.add(user1); // result表示执行上面的行为后,预期返回的结果 result = a; } }; //..Assert.assertTrue(123 == userDao.deleteUser(12)); // 重放 Integer integer = userDao.deleteUser(12); System.out.println(integer); User userById = userDao.getUserById(13); System.out.println(userById.getId()); //Assert.assertTrue(123 == userDao.getUserById(13).getId()); } }
(四) 执行结果:
五: 总结
不会测试的开发不是开发,平常因为程序逻辑比较复杂,想要进行单元测试的时候会麻烦,这是很多开发者不书写测试案例的主要原因,但是JMockit给我们提供了一个简便的方式来进行书写测试用例,即使多个微服务之间的测试也能够简单实现,所以,即使再复杂的逻辑,也可以通过JMockit去完成测试用例的书写,再也不用怕别人说你开发流程不规范了。