当前位置: 首页 > 知识库问答 >
问题:

如何在基于Spring-boot的应用程序测试中更改基于Java的配置?

笪智志
2023-03-14

我正试图找出如何以适当的方式测试我的代码,并卡在中间的某个地方。

我所使用的:

我需要什么样的帮助:

  • 实现这种方法的工作项目是最可取的。不要花太多的文字,工作代码对我来说是最好的理解方式。
  • 如果没有一个完整的项目,那么带有描述的代码段也很有用。
  • 链接到关于1)基于Java的配置2)替换基于Java的配置进行测试的一些好的和简单的教程

很抱歉,如果我的想法有点混乱,我是Java EE开发的新手,仍然没有很好地理解所有的基本主题。

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
@RestController
public class BooksController {

    @Autowired
    BooksProvider booksProvider;

    @CrossOrigin
    @RequestMapping("/books")
    String allBooks() throws Exception {

        return this.booksProvider.fetchAllBooksAsTring();
    }

}

BooksProvider服务类

public class BooksProvider {

    public String fetchAllBooksAsTring() {
        return "[\"Marting Iden\", \"Capital\", \"Strong Wind\"]";
    }
}

SimpleConfiguration配置类

@Configuration
public class SimpleConfiguration {

    @Bean
    public BooksProvider booksProvider() {
        return new BooksProvider();
    }

}

共有1个答案

柴彬
2023-03-14

在Spring Boot 1.3.x中,我成功地使用了以下方法:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration({Application.class, IntegrationTestsConfiguration.class})
@ActiveProfiles({"it"})
@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)
public class MyIT {
    // tests 
}

正如您所看到的,除了application.class(用@springbootapplication注释的那个)之外,@springapplicationconfiguration中还有intergrationtestsconfiguration.class。这个类负责覆盖bean,为了测试目的,我想改变这些行为。

这就是这样的类的样子:

@Configuration
public class IntegrationTestsConfiguration {

    @Bean
    @Primary
    public BooksProvider booksProvider() {
        // your custom instantiation code goes here
    }
}
  • 在单元测试中重写Autowired Bean
  • 在集成测试中重写bean
  • https://dzone.com/articles/mockbean-spring-boots-missing-compriguent
 类似资料:
  • 问题内容: 所有, 我已经用Java编写了基于命令行的PhoneBook应用程序。该应用程序基本上会询问用户的一些详细信息,例如姓名,年龄,地址和电话号码,并将它们存储在文件中。其他操作包括按名称,电话号码等查找电话簿。所有详细信息都通过控制台输入。 我正在尝试为我已实现的每个功能编写JUnit测试用例,但无法弄清楚如何将实现代码重定向到我的JUnit测试方法中的某个东西,当我的实际代码停止供用户

  • 那么,如何将这样的机制集成到项目(Spring Boot app)中呢?提前谢了。

  • 本文向大家介绍基于Spring Boot保护Web应用程序,包括了基于Spring Boot保护Web应用程序的使用技巧和注意事项,需要的朋友参考一下 如果在类路径上添加了Spring Boot Security依赖项,则Spring Boot应用程序会自动为所有HTTP端点提供基本身份验证。端点“/”和“/home”不需要任何身份验证。所有其他端点都需要身份验证。 要将Spring Boot S

  • null 用于构建应用程序 如何动态地选择应用程序名称并在pom.xml文件中更新

  • 主要内容:创建项目,在Eclipse中导入项目,运行项目从这篇文章开始,我们使用Spring-AOP框架编写实际的AOP应用程序。在开始使用Spring-WS框架编写第一个示例之前,必须确保已经按照Spring AOP安装配置教程中的说明正确设置了Spring-AOP开发运行环境。 现在我们继续来编写一个简单的基于控制台的Spring AOP应用程序,它用于演示AOP的概念。 先来看看要创建的项目的目录结构 - 创建项目 打开命令控制台,进入目录并执行

  • 我有一个相当简单的Spring Boot应用程序,它公开了一个小的REST API,并从MongoDB实例检索数据。对MongoDB实例的查询通过基于Spring数据的存储库进行。下面的一些关键代码。 所以这里的想法是让集成测试(目前是空的)连接到嵌入的mongo实例,而不是“活的”实例。然而,这并不奏效。我可以看到连接到Mongo的“live”实例的测试,如果关闭它,构建就会失败,因为它还在尝试