我应该测试 Spring Boot 应用程序的 main() 方法吗?如何测试?

2024-05-04

当我创建 Spring Boot 应用程序时,它会生成 2 个类:

@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

第二个是测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class AppTest {

    @Test
    public void contextLoads() {
    }

}
  1. 就像您可以注意到 contextLoads 测试是空的一样。我应该如何为 contextLoad 提供正确的测试?也许它应该保持空着?这是对的吗?或者我应该在里面放一些东西?

UPDATE:

  1. 为什么这个测试应该保留?如果我在应用程序中进行更多测试,我会知道 spring 上下文是否已加载。这不就是过多的.

我读过类似的答案this https://stackoverflow.com/questions/46650268/how-to-test-main-class-of-spring-boot-application但它没有给我明确的答案。


事实上,main()Spring Boot 应用程序的方法不包含在单元/集成测试中,因为 Spring Boot 测试不会调用main()方法来启动 Spring Boot 应用程序。

现在我认为这个问题的所有答案post https://stackoverflow.com/questions/46650268/how-to-test-main-class-of-spring-boot-application看起来有点矫枉过正。
他们想添加一个测试main()使度量工具满意的方法(声纳)。
加载 Spring 上下文并加载应用程序需要时间.
不要仅仅为了在应用程序中赢得大约 0.1% 的覆盖率而将其添加到每个开发人员版本中。
我对此添加了一个答案。


除了您的简单示例和您提到的其他帖子之外,从绝对意义上讲,为以下内容创建测试可能是有意义的:main()方法,如果您包含一些逻辑。例如,当您将特定参数传递给应用程序并在main()方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该测试 Spring Boot 应用程序的 main() 方法吗?如何测试? 的相关文章

  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • PropertySources 中各种源的优先级

    Spring引入了新的注释 PropertySources对于所有标记为的类 Configuration since 4 0 需要不同的 PropertySource作为论证 PropertySources PropertySource c
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐

  • 两个具有共享缓冲区的等待线程(生产者/消费者)

    我试图让一堆生产者线程等待 直到缓冲区有空间容纳某个项目 然后将项目放入缓冲区 如果没有更多空间 则返回睡眠状态 同时应该有一堆消费者线程等待 直到缓冲区中有东西 然后尽可能地从缓冲区中获取东西 如果缓冲区为空则返回睡眠状态 在伪代码中 这
  • 如何使用 #pragma 在 G++ 中启用优化

    我想在没有命令行参数的情况下启用 g 优化 我知道 GCC 可以通过写来做到这一点 pragma GCC optimize 2 在我的代码中 但它似乎在 G 中不起作用 此页面可能有帮助 http gcc gnu org onlinedoc
  • 我如何解决 React+Material UI 中的此错误

    当我尝试在 Mac 和 Ubuntu 中运行该应用程序时 出现以下错误 但在Windows平台下运行没有任何错误 我该如何解决这个问题 Material UI beta 版本 v1 0 0 beta 46 中是否有任何平台特定的代码 我使用
  • pandas 数据框中不重叠的滚动窗口

    我熟悉 Pandas 滚动窗口函数 但它们的步长始终为 1 我想在 Pandas 中执行移动聚合函数 但条目不重叠 In this Dataframe df rolling 2 min 将产生 N A 519 566 727 1099 12
  • 场景 - 根据 iPad 或 iPhone 使用专用故事板

    Apple 现在希望我们使用 场景 而不是窗口和屏幕来显示 iPad 和 iPhone 的内容 现在添加了对场景的支持 我似乎失去了使用故事板定位 iPad 或 iPhone 的能力 I set my scenes inside plist
  • 突然我无法为 iPhone 模拟器构建

    有时人们真的很讨厌苹果的开发环境 说真的 有必要这么复杂吗 我的问题是这样的 我无法再在模拟器上构建我的项目 我收到以下错误 我意识到这是一个链接器错误 我不明白的是 1 为什么它突然不再工作 2 它为什么不会选择正确的 SDK 这是链接器
  • 检测字符串中的所有大写字母

    我在尝试在 JavaScript 中编写正则表达式时遇到问题 该正则表达式可以检测以全部大写字母键入的至少 2 个字符的整个单词 这是我尝试过的并且似乎有效 b Wa z0 9 b 但是 我会检测用户是否开始字符串 我喜欢你 因为 I 是大
  • Objective-C 中如何检查一个字符是否为数字?

    我需要检查一个字符是否是数字 NSString strTest Test55 char c strTest characterAtIndex 4 我需要找出 c 是否是数字 我怎样才能在 Objective C 中实现这个检查 Note 返
  • Android 模拟器冻结

    在上一个 SDK 版本发布之前 我的 Android 模拟器在 x86 架构上运行得非常好 安装了 Intel HAXM 并在 AVD Manager 中为设备启用了 GPU 使用最新的 SDK 版本 我重新安装了 Windows 从 8
  • 如何点击粘贴?它适用于谷歌文档

    我希望能够在用户单击时启动真正的粘贴事件 我可以理解这可能是一个安全问题 因为如果任何网页可以访问用户剪贴板 那就不好了 所以我认为所有浏览器都不允许访问剪贴板数据 但例如在 google 文档 在类似 word 的应用程序中 中 我可以从
  • 如何使水平条形图可滚动?

    目前正在尝试使用 MPAndroidChart 实现 Horizo ntalBarChart 但是 条形图太多 无法全部显示在屏幕上 仅当我放大时 Horizo ntalBarChart 才会滚动 但永远不会超过屏幕上已有的内容 不确定这是
  • Powershell send-mailmessage - 向多个收件人发送电子邮件

    我有这个 powershell 脚本来发送带有附件的电子邮件 但是当我添加多个收件人时 只有第一个收件人收到消息 我已经阅读了文档 但仍然无法弄清楚 谢谢 recipients Marcel lt email protected cdn c
  • 地图中的最大元素数

    GO 中的 Map 最多可以存储多少个元素 如果我需要经常从 Map 访问数据 那么在长时间运行的程序中不断向 Map 添加项目并从中检索项目是一个好主意吗 除了map length类型的最大值之外 map中的元素数量没有理论上的限制 in
  • Python 原始字符串和尾随反斜杠[重复]

    这个问题在这里已经有答案了 我曾经遇到过一些东西 想知道它是否是一个 Python bug 或者至少是一个错误功能 我很好奇是否有人知道这种行为的任何理由 我刚刚在阅读 Code Like a Pythonista 时想到了这一点 到目前为
  • 在龙卷风下运行 Pyramid WSGI 应用程序

    Pyramid 使用它自己的 Waitress Web 服务器进行开发 但我想在 Tornado 下为我的 WSGI 应用程序提供服务 我想我应该使用 pserve ini 文件配置它 但我无法让它工作 Pyramid 应用程序可以轻松地从
  • 如何选择使用 C# 的 CodeDom 编译器的目标框架?

    因此 我有一个用 C 编写的 CodeDOM 编译器 它应该根据其资源之一编译另一个应用程序 如何更改资源 或编译器输出的可执行文件 的目标 NET 框架 您可以使用以下命令将选项传递给编译器以下构造函数 http msdn microso
  • 是否可以在我的 Azure DevOps 构建管道“发布工件”任务中有条件地设置工件名称?

    我想知道是否可以在 Azure DevOps 构建管道 发布工件 任务中有条件地设置构建工件的名称 我想根据构建管道的输入生成不同的工件 比如说 根据输入管道变量 我想生成三个工件之一 红色 蓝色 绿色 是否可以根据输入变量指定在我的 发布
  • django-storages boto3 访问私有文件的文件 url

    我正在尝试在我创建的测试模型中获取文件的生成 URL 我正在尝试通过以下方式获取文件的正确网址 modelobject file url如果文件是公开的 它确实会给我正确的网址 但是如果文件是私有的 它不会自动为我生成签名的网址 这通常是如
  • 如何获取 C# 项目之间的依赖关系图

    我有一个相当复杂的应用程序 它已分解为多个组件 每个组件都有一个解决方案文件 其中包含一堆项目 所以我喜欢将其视为一个包含多个项目 dll 的组件 还有一个 通用 组件 所有其他组件都依赖于 common 所以编译是这样的 nant com
  • 我应该测试 Spring Boot 应用程序的 main() 方法吗?如何测试?

    当我创建 Spring Boot 应用程序时 它会生成 2 个类 SpringBootApplication public class App public static void main String args SpringApplic