使用junit测试用例
时间:2022-05-04
本文章向大家介绍使用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 }
- Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板
- 2014上半年国内安卓银行应用隐私泄露和安全隐患研究报告
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
- Metasploitable2使用指南
- 在渗透测试中使用fuzz技术(附windows安装指南)
- 黑了记者:写个恶意软件玩玩(二)
- 开源BUG跟踪平台JIRA目录遍历漏洞分析
- 黑了记者:写个恶意软件玩玩(一)
- 使用 Python 工具 Locust 进行负载测试
- 玩转Google的XSS游戏
- iOS基于GPUImage的图像形变设计(简单形变部分)
- 不错的node.js入门
- Sql语句收藏
- View-ForumsGroupView.ascx 读解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 从Properties乱码来学习编码
- 【Vue.js】Vue.js组件库Element中的图片、回到顶部、无限滚动和抽屉
- Java逐行读取和写入文件
- Vuejs使用v-for指令实现九九乘法表
- Cypress系列(43)- visit() 命令详解
- 在GitLab pages上快速搭建Jekyll博客
- Dubbo项目中No provider available for the service xxx from registry xxx on the consumer问题的解决思路
- Mysql面对高并发修改的问题处理【2】
- java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题
- activmq:android平台下使用openwire协议连接activemq服务的问题
- Leetcode No.9 回文数
- go-zero微服务框架入门教程
- 聊聊java中的哪些Map:(九)TreeMap源码分析
- 海康IPCamera结合OpenCV图像处理的一般步骤
- 聊聊java中的哪些Map:(十)各种map的总结