热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IntelliJIdea:JUnitTestClass模板,具体取决于条件

如何解决《IntelliJIdea:JUnitTestClass模板,具体取决于条件》经验,为你挑选了1个好方法。

我经常写不同类型的测试.根据测试类型,它可能有不同的设置.

例如,我的所有服务测试在类声明下都有以下注释:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvirOnment= NONE)

所有控制器测试都有这些注释:

@RunWith(SpringRunner.class)
@WithMockUser
@WebMvcTest(cOntrollers= MyController.class)

另一个测试有不同的设置等.

每当我创建测试时,我都必须从另一个测试中复制粘贴此部分.

我正在寻找一种能够帮助我在IntelliJ Idea中自动完成此过程的解决方案.

问:有没有办法JUnit Test Class根据测试类型定义不同的模板?

假设类名以"Service"结尾 - 其生成的测试应使用一个模板,如果类名以"Controller"结尾 - 其测试应使用另一个,等等.

还可以通过包名称或类内容等一些其他条件来检测测试类型.



1> Rob Obdeijn..:

可以在"设置">"文件和代码模板">"代码"下找到JUnit代码生成模板.

您无法真正创建单独的代码模板,但您可以做的是向现有模板添加逻辑.他们使用基于Velocity的指令.因此,例如,如果我们采用现有的JUnit 4模板:

import static org.junit.Assert.*;
#parse("File Header.java")

public class ${NAME} {
  ${BODY}
}

我们可以将其修改为以下内容:

import static org.junit.Assert.*;
#if($CLASS_NAME.contains("Service"))
//Import whatever you need for services here.
#end
#if($CLASS_NAME.contains("Controller"))
//Import whatever you need for controllers here.
#end
#parse("File Header.java")
#if($CLASS_NAME.contains("Controller"))
#set($CLASS_SUFFIX = ".class" )
@RunWith(SpringRunner.class)
@RunWithMock
@WebMvcTest(cOntrollers= $CLASS_NAME$CLASS_SUFFIX)
#end
#if($CLASS_NAME.contains("Service"))
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvirOnment= NONE)
#end
public class ${NAME} {
  ${BODY}
}

这样,如果您通过上下文菜单生成一个新的JUnit 4测试类(在要测试的类的类名上按alt-enter并生成新测试),如果要测试的类的名称包含,则它将生成不同的输出'控制器'或'服务'.您可能希望将其更改为endswith而不是contains,具体取决于您使用的任何命名约定.在这两种情况下我都遗漏了实际的导入语句,但我相信你能够添加它们.


推荐阅读
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
author-avatar
谦谦骄子_458
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有