【问题标题】:Creating multiple "main" methods in a Spring Boot project? [duplicate]在 Spring Boot 项目中创建多个“主要”方法? [复制]
【发布时间】:2017-07-16 17:39:54
【问题描述】:

在使用 Spring Boot 之前,我会在类中定义一个 main 方法,我想在其中测试一些方法并最终删除 if 以用于最终版本。这是我的工作:

public class UserDAO {

public int getUserSSN( int userId )
{
     //Connect to database and get stuff and return it 
}

public static void main(String[] args)
{
   int x = new UserDAO().getUserSSN( 12 );
   System.out.println( x );
}

}

这让我可以在开发时快速测试东西(而不是用 JUnit 模拟东西)。我怎样才能在 Spring Boot 中做同样的事情?

编辑:这不是一个最佳实践问题——我认为 JUnit 和其他单元测试/模拟框架对于确保良好的开发人员级别测试是必要的这一点已被普遍接受。我只是想知道如何快速做到这一点(如减少打字 - 而不是执行速度)。

【问题讨论】:

  • 制作多个测试用例类,然后调用你想要的?
  • 我讨厌拿起其他人的代码,他们使用随机的main() 方法来执行临时测试,而不是应用不会弄乱代码的标准 JUnit 测试,可用于快速测试代码库,提供代码覆盖率和指标等。改善您的开发习惯并遵循最佳实践。
  • AFAIK,你能做的最好的事情就是告诉 Spring Boot 你的代码库中的哪个主要类作为 JAR 的主要类。因此,您的测试方法将通过编辑 POM 文件或通过为每个动态测试创建单独的模块/POM 来实现。但是,从根本上说,Spring Boot 并不是为了做你想做的事情而设计的。最好的解决方案是不这样做。说真的。

标签: java spring spring-mvc


【解决方案1】:

正确的方法是使用多个测试方法/类来测试你需要的东西(单个单元测试方法评估的时间很短)。 你不想在你的生产类中有这样的代码(因为你可能忘记删除它们)。

另外(假设您是新手)您应该阅读有关 TDD 或 BDD 的信息,因为这是许多开发人员生成代码的方式,并且有多个优点(也有缺点或陷阱)。

编辑答案:您应该在正常(不是一些学习,教程)项目中已经有很多测试课程,因此编写测试并不费时。 另外请始终记住,如果您必须测试某些东西,如果它看起来很重要,那么您应该保留此测试,因为测试也是文档!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 2020-01-16
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多