因为项目的需要,所以研究了一下自动生成测试代码。将经验记录下来,总会有用的。我个人认为,好记性不如多做笔记多反思总结。

1.    前提条件

  • 开发环境已正确配置
  • 工程已解决JUnit依赖关系(pom.xml)
  • 我用的是4.12版本:
     <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>

2.    IDEA中JUnit配置

  打开Settings窗口搜索junit,如图(两个插件都勾选添加):

  JUnitGenerator V2.0插件,可以帮助我们自动生成测试代码。如果搜索junit没有JUnitGenerator V2.0时,如下图操作(下载添加):

  调用模板的方法(Alt+Insert)默认测试所有所有方法。若想要动态个性化生成,可以在所要测试的类页面上,使用该快捷操作Ctrl + Shift + T,如下图个性化设置:

  现在可以通过右键菜单在这个类上运行'***测试类名**'来进行测试,或通过Run → Edit Configurations来进行。

3.    JUnit常用断言及注解

  JUnit为我们提供了一些辅助函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些辅助函数称为断言。

断言核心方法

注解

  一个测试类单元测试的执行顺序为:

    @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

  每一个测试方法的调用顺序为:

    @Before –> @Test –> @After

  代码示例:

public class JunitFlowTest { /* * *1. @BeforeClass修饰的方法会在所有方法被调用前被执行, * 而且该方法是静态的,所以当测试类被加载后接着就会运行它, * 而且在内存中它只会存在一份实例,它比较适合加载配置文件。 * 2. @AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接 * 3. @Before和@After会在每个测试方法的前后各执行一次。 * */ @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("this is beforeClass..."); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("this is afterClass...");} @Before public void setUp() throws Exception { System.out.println("this is before..."); } /*** 即使在@Before注解方法、@Test注解方法中抛出了异常,* 所有的@After注解方法依然会被执行*/@After public void tearDown() throws Exception { System.out.println("this is after"); } /* * * * 1. Failure一般由单元测试使用的断言方法判断失败所引起的,*  这经表示测试点发现了问题 * ,就是说程序输出的结果和我们预期的不一样。 * 2. error是由代码异常引起的,它可以产生于测试代码本身的错误,*  也可以是被测试代码中的 * 一个隐藏的bug * 3.测试用例不是用来证明你是对的,而是用来证明你没有错。 */ @Test public void testAdd() { assertEquals(5, new Calculate().add(3,3)); } @Test public void testDivide() { assertEquals(3, new Calculate().divide(6, 0));}}

在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块相关推荐

  1. 25.怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

    转自:https://blog.csdn.net/wangyj1992/article/details/78387728 因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我 ...

  2. IDEA 安装JUnitGenerator V2.0 插件 帮助生成单元测试

    IDAE作为一款智能的开发工具,便利的插件丰富,提高我们的开发效率,作为后台开发人员,单元测试是必不可少的,服务层呢么多的方法要一个一个去写单元测试方法?NO!我们可以使用JUnitGenerator ...

  3. 早晚安打卡签到v2.0.1 公众号模块

    简介: 早晚安打卡签到v2.0.1 公众号模块  版本号:2.0.1 – 服务号多开版海报样式复制升级:拦截样式为空的复制,避免误操作导致海报内容空白 版本号:2.0.0 – 服务号多开版 易源码后台 ...

  4. mybaitis快速生成_Mybatis中使用mybatis-generator结合Ant脚本快速自动生成Model、Mapper等文件...

    使用过Mybatis的同学都知道,针对每一个项目中使用到的数据库表都需要建立其对应的数据库增删改查xxxMapper.xml文件.实体类xxx.java文件以及其他类用来调用进行数据库操作的xxxMa ...

  5. 实际开发中 dao、entity的代码怎样自动生成?一款工具送给你

    01 关注"一猿小讲"朋友,都知道以往的文章一直倡导拒绝 CRUD,那到底什么是 CRUD?今天咱们就聊聊 Java 妹子小猿与数据库老头交互的事儿. 产品小汪铿锵有力的说:小猿同 ...

  6. java dao层代码生成器_实际开发中 dao、entity的代码怎样自动生成?一款工具送给你...

    01 关注"一猿小讲"朋友,都知道以往的文章一直倡导拒绝 CRUD,那到底什么是 CRUD?今天咱们就聊聊 Java 妹子小猿与数据库老头交互的事儿. 产品小汪铿锵有力的说:小猿同 ...

  7. 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...

  8. ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格...

    一.新建一个Web 控件库; 二.在WebCustomControl1.cs文件中编制如下代码: using System; using System.Web.UI; using System.Web ...

  9. 工作中遇到的问题之android客户端自动生成带logo的二维码

    android中生成动态二维码很简单,网上随便搜一搜便能找到,本以为任务很快就把任务解决了,可是客户说二维码中一定要添加他们公司的logo这可把哥们难倒了,开始再次投入度娘的怀抱,查看各位大神的代码, ...

最新文章

  1. Linux Core Dump
  2. 从超链接调用ActionScript
  3. hibernate查询-基本查询
  4. xhr如何发送post请求_js实现ajax的post请求步骤
  5. 网络协议之:加密传输中的NPN和ALPN
  6. system.gc 性能_使用这些先进的GC技术提高应用程序性能
  7. ETL异构数据源Datax_工具部署_02
  8. 使用代码为TextView设置drawableLeft
  9. TOGAF 企业连续系列
  10. Scala实现Kafka生产者与消费者实例
  11. error CS0227: Unsafe code may only appear if compiling
  12. SpringSecurity专题(五)-数据库认证
  13. 解读老黄历--月日时令
  14. 赛博朋克2077漫威黑寡妇捏脸
  15. c++11线程池的实现原理及回调函数的使用
  16. java——java删除指定文件或文件夹
  17. 一款个性、实用、无痕的浏览器(大学生的最爱)
  18. RFID标签、读卡器、终端、接口的概念
  19. 复盘:一副牌(54张),三人斗地主,大小王在同一家的概率是多少
  20. Goby 漏洞更新 | 铭飞 CMS list 接口 sqlWhere 参数 sql 注入漏洞

热门文章

  1. 网站一键修改黑白色方法(附代码)
  2. 算力网络 — 东数西算政策
  3. 虚幻4引擎将至!从虚幻看游戏引擎发展
  4. Python-Sql盲注检测
  5. OpenCV中将Mat RGBA4通道转换成RGB3通道
  6. pytorch自带网络_群友原创:万字长文入门 Pytorch 深度学习框架
  7. python 读grid 数据_wxpython编程之 grid(数据表格)
  8. FishC《零基础学习python》笔记--第004讲:改进我们的小游戏
  9. 使用VideoCapture进行读取时0x00007FF9A1F86A6F (opencv_world440d.dll)处(位于 opencvtest.exe 中)引发的异常
  10. Java行业已经饱和了吗?现在转行学Java还有前途吗?