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

Spring boot test最小测试片或手动配置

干浩然
2023-03-14

我有许多不同的SpringBoot测试正在运行。到目前为止,自动配置片确实很有帮助,特别是与@mockbean结合使用时。

但是在我当前的测试中,没有这样的片段适合,并且使用@springboottest启动完整的上下文太慢了。

是否有一种方法可以手动设置要开始的对象树的顶端,然后从那里spring Autowors所有需要的bean?或者有没有一种方法可以手动设置所有需要的bean?

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

    @Autowired
    private PRUMapper mapper;

    @MockBean
    private TradingPartnerService tradingPartnerService;

    @MockBean
    private ProductHierarchyService productHierarchyService;

    @Test
    public void mapForthAndBack(){
      //works but takes ages to boot
    }

}

如何获得只包含所需bean的Spring上下文?

共有1个答案

朱自明
2023-03-14

我通过显式声明所使用的所有实现找到了一种方法:

@SpringBootTest(classes = {ProductResponsibleUnitMapperImpl.class, LegalEntityMapperImpl.class, ProductHierarchyMapperImpl.class}) 

对于更复杂的设置,声明生成的类会很麻烦,也很危险。

我仍然在寻找一种更好更干净的方法来让Spring决定需要什么类。应该可以在手中设置类,让Spring来决定需要什么类和要实例化什么类。

 类似资料:
  • 我的项目中有一堆测试,它们都用@SpringBootTest注释,因此加载了一个SpringBoot上下文。 最近,我重构了一个测试,在这个测试中,我想要一个更小的范围(它是关于camunda的进程复盖率)到@RunWith(SpringJunit4ClassRunner.class)。因为这意味着没有上下文是自动加载的,所以我用静态内部类配置“手动”创建了一些bean。整个测试如下所示: 我不能

  • 主要内容:手动测试的类型,如何进行手动测试,手动测试的优点,手动测试的缺点,手动测试工具手动测试是一种软件测试过程,需要手动执行测试用例而不是使用自动化工具。测试人员根据最终用户的角度手动执行所有测试用例。它确保应用程序是否正如需求文档中所述那样工作。计划和实施测试用例以完成几乎100%的软件应用程序。测试用例报告也是手动生成的。 手动测试是最基本的测试过程之一,因为它可以找到软件的可见和隐藏缺陷。由软件给出的预期输出和输出之间的差异被定义为缺陷。开发人员修复了缺陷并将其交给测试人员

  • DAO类的相关方面如下 我的src/test/resources/application.properties文件如下所示 在Eclipse中作为JUnit测试运行的跟踪 应用程序结构 -SRC ----application.java ----COM ----Hitstpa ----application.properties --测试 ---爪哇

  • 我们有一个库,为了自动配置库,我们使用spring.factories文件(),它提供了自动配置我的库的类。 参考资料 : https://docs.spring.io/spring-boot/docs/1.4.0.M3/reference/htmlsingle/#boot-features-custom-starter 我在spring.factories文件中有以下配置: 我的理解是sprin

  • 我有一个SpringBootTest集成测试,用于我正在开发的某个框架,该框架使用与SpringBootApplication内置的jpa。我添加了支持在没有jpa的情况下使用框架,为此我需要创建一个不使用jpa的不同的SpringBootApplication。 现在,单独运行时的测试类工作得很好,但是当我一起运行它时(运行不同Spring应用程序的不同测试类),第二顺序测试类失败,因为我似乎没

  • 英文原文:http://emberjs.com/guides/testing/test-helpers/ 测试Web应用最大的问题是代码都是事件驱动的,因此很可能出现异步的情况(例如输出与输入不是按照顺序发送)。其衍生问题就是代码可能会以任何可能的顺序执行。 下面这个例子能很好的说明此问题:当一个用户点击了两个按钮,一个接着一个,分别从不同的服务器加载数据。这种情况响应的时间是不同的。 当编写测试