使用junit测试用例
通常只会使用junit测试非main方法,在我眼里就是程序入口实现而已。今天,发现原来可以测试类。
针对mybatis练习。在需要测试的UserDaoImpl类上右键,新建一个junit case,位置可以放到新创建的source folder :test里面。
选择需要测试的方法:
然后就会生成一个测试方法,自己补足测试方法就好:
1 package cn.mrf.mybatis.dao; 2 3 import static org.junit.Assert.*; 4 5 import java.io.InputStream; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 import org.apache.ibatis.session.SqlSessionFactory; 10 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 11 import org.junit.Before; 12 import org.junit.Test; 13 14 import cn.mrf.mybatis.po.User; 15 16 public class UserDaoImplTest { 17 18 private SqlSessionFactory sqlSessionFactory; 19 20 //此方法是在执行testFindUserById之前执行 21 @Before 22 public void setUp() throws Exception{ 23 //创建sqlSessionFactory 24 //mybatis配置文件 25 String resource = "SqlMapConfig.xml"; 26 27 InputStream inputStream = Resources.getResourceAsStream(resource); 28 //创建会话工厂,传入mybatis的配置文件信息 29 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 30 31 } 32 33 @Test 34 public void testFindUserById() throws Exception { 35 //创建UserDao对象 36 UserDao userDao = new UserDaoImpl(sqlSessionFactory); 37 //调用 38 User user = userDao.findUserById(1); 39 40 System.out.println(user); 41 } 42 43 }
下面是被测试的类:
1 package cn.mrf.mybatis.dao; 2 3 import java.util.List; 4 5 import org.apache.ibatis.session.SqlSession; 6 import org.apache.ibatis.session.SqlSessionFactory; 7 8 import cn.mrf.mybatis.po.User; 9 /** 10 * 11 * @ClassName: UserDaoImpl 12 * @Description: 接口实现类 13 * @author mrf 14 * @date 2015-9-19 下午05:57:03 15 * 16 */ 17 public class UserDaoImpl implements UserDao { 18 19 // 需要向dao实现类中注入SqlSessionFactory 20 // 这里通过构造方法注入 21 private SqlSessionFactory sqlSessionFactory; 22 23 public UserDaoImpl(SqlSessionFactory sqlSessionFactory) { 24 this.sqlSessionFactory = sqlSessionFactory; 25 } 26 27 28 @Override 29 public User findUserById(int id) throws Exception { 30 //sqlSession是线程不安全的,所以单独使用 31 SqlSession sqlSession = sqlSessionFactory.openSession(); 32 33 User user = sqlSession.selectOne("test.findUserById",id); 34 35 //释放资源 36 sqlSession.close(); 37 return user; 38 } 39 40 @Override 41 public List<User> findUserByName(String name) throws Exception { 42 SqlSession sqlSession = sqlSessionFactory.openSession(); 43 44 List<User> list = sqlSession.selectList("test.findUserByName",name); 45 46 //释放资源 47 return list; 48 } 49 50 @Override 51 public void insertUser(User user) throws Exception { 52 SqlSession sqlSession = sqlSessionFactory.openSession(); 53 //执行插入 54 sqlSession.insert("test.insertUser",user); 55 56 //提交事物 57 sqlSession.commit(); 58 // 释放资源 59 sqlSession.close(); 60 61 62 } 63 64 @Override 65 public void deleteUser(int id) throws Exception { 66 SqlSession sqlSession = sqlSessionFactory.openSession(); 67 68 //执行插入操作 69 sqlSession.delete("test.deleteUser", id); 70 71 // 提交事务 72 sqlSession.commit(); 73 74 // 释放资源 75 sqlSession.close(); 76 } 77 78 }
转载于:https://www.cnblogs.com/woshimrf/p/4821952.html
使用junit测试用例相关推荐
- JUnit测试用例– Eclipse和Maven
JUnit Test Cases are normal java class with methods to be executed by JUnit framework. JUnit 5 is a ...
- IDEA 运行 Junit 测试用例报 !!! JUnit version 3.8 or later expected 错误
问题介绍 在使用 IDEA 运行 Junit 测试用例的时候,控制台报了!!! JUnit version 3.8 or later expected错误,完整报错信息如下: !!! JUnit ve ...
- ant脚步执行JUnit测试用例
除了使用java来直接运行junit之外,我们还可以使用ant脚本,结合脚本执行junit用例,并生成测试报告,在进行每日构建等动作时非常有用. 一个完整的例子: <?xml version=& ...
- 彻底解决IDEA执行junit测试用例时报Command line is too long错误
我想很多同学都遇到过这样的烦恼,那就是在运行Junit单元测试用例的时候,idea提示command line is too long,见下图: 然后点击上图箭头所指向的地方,idea会弹出一个对话框 ...
- parasoft Jtest 使用教程:生成、执行和扩展Junit测试用例
parasoft Jtest介绍和试用>>> Jtest能自动的生成和执行用来捕捉运行时异常的JUnit测试用例以及尽可能完整的运用方法.你能扩展这些自动生成的测试用例来提高测试覆盖 ...
- EightQueens JUnit测试用例
慕测得分 总结 本题的Node是整个搜索空间. 遗传得分越高,说明当前的棋盘皇后之间的冲突越多. 爬山算法和模拟退火算法都是在解空间内寻找遗传得分更小的棋盘状态,但不保证找到为0的最优解. 缺陷 我感 ...
- 教你快速写出多线程Junit单元测试用例 - GroboUtils
摘自: http://mushiqianmeng.blog.51cto.com/3970029/897786/ 本文出自One Coder博客,转载请务必注明出处: http://www.coderl ...
- junit linux命令行运行,如何从命令行在JUnit中运行测试用例?
我正在尝试使用此命令从命令行运行JUnit测试用例: F:\>java org.junit.runner.JUnitCore org.junit4.9b2.junit.SimpleTest 但我 ...
- Junit的安装与使用
一.简介: JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit有它 ...
最新文章
- linux的逻辑运算参数,Linux基础之bash脚本编程初级-逻辑运算与测试
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别
- Hyperledger Fabric 排序服务核心原理和工作过程
- 编写字符串反转函数 .
- SpringCloud Greenwich(二)注册中心之consul、Zuul和 gateway网关配置
- 零基础:邪恶带你3步快速掌握iSCSI搭建
- Java Web学习笔记10:Servlet基础
- 阿里云大学>【Python学习路线】Python语言基础自测考试 - 初级难度 | 包过关系列
- 楼市降价潮蔓延至二三线城市 土地多底价成交
- ndims matlab,MATLAB的size(),length(),ndims()函数
- 服务器系统可以重装系统,服务器上可以重装操作系统吗
- select函数的分析
- 公司邮箱精选-国际通用的电子邮箱有哪些?
- 在vue-cli项目中,如何使用网易云信
- 42-面对对象编程(高级部分)1
- C++指针详解2_typedef函数声明类型、sizeof特性简介与数组指针间关系说明
- 在线图书销售系统顺序图_良心好用的在线学习工具,你知道和不知道的,这里都有~...
- 裴波那契数列及其递归算法
- NOKIA PC套恢复通讯录时
热门文章
- 跳出当前_活在当下,跳出当下
- Android通知固定,[20180607已更新] 使用NJS控制Android通知栏,不用个推实现本地消息推送(Local Notification)...
- springboot + kafka
- Deep Reinforcement Learning: Pong from Pixels
- VS2013出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配”错误解决方案
- VS 2013 C++ 类模板定义与实现 进行分离
- 国内up300.net网盘无法使用的解决办法
- 【Transformer】ViT:An image is worth 16x16: transformers for image recognition at scale
- 使用Scikit-learn,Spotify API和Tableau Public进行无监督学习
- 为什么“支付宝里没钱了”和“微信里没钱了”给人两种不同的感觉