Spring JUnit 测试未加载完整的应用程序上下文

2024-04-30

您好,我正在尝试使用 spring junit 测试用例...并且我需要加载完整的应用程序上下文。然而,junit 测试不会初始化完整的应用程序上下文。

测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class MongoDbRepositoryTest {

    @Value("${spring.datasource.url}")
    private String databaseUrl;

    @Inject
    private ApplicationContext appContext;

    @Test
    public void testCRUD() {
        System.out.println("spring.datasource.url:" + databaseUrl);
        showBeansIntialised();
        assertEquals(1, 1);
    }

    private void showBeansIntialised() {
        System.out.println("BEEEAAANSSSS");
        for (String beanName : appContext.getBeanDefinitionNames()) {
            System.out.println(beanName);
        }
    }

Output:

spring.datasource.url:${spring.datasource.url}
BEEEAAANSSSS
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.internalPersistenceAnnotationProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor

主要应用类注释:

@ComponentScan(basePackages = "com.test")
@EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
@EnableMongoRepositories("com.test.repository.mongodb")
@EnableJpaRepositories("com.test.repository.jpa")
@Profile(Constants.SPRING_PROFILE_DEVELOPMENT)
public class Application { ...

因此,它应该扫描 com.test 包中的所有 spring bean,并将它们加载到 Junit 测试用例的 applicationcontext 中。但从初始化的 beans 的输出来看,它似乎并没有这样做。


您需要注释您的测试类@ActiveProfiles如下;否则,你的Application配置类永远是disabled。这就是为什么您目前看不到任何您自己的 Bean 列在ApplicationContext.

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@ActiveProfiles(Constants.SPRING_PROFILE_DEVELOPMENT)
public class MongoDbRepositoryTest { /* ... */ }

此外,Application应注释为@Configuration正如其他人提到的。

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

Spring JUnit 测试未加载完整的应用程序上下文 的相关文章

随机推荐

  • 检查 Javascript 中的 URL 是否损坏

    这个问题之前已经发布在 Stack 上 但没有一个具体到我想要理解的内容 检查 URL 是否正确的最简单方法是发送 http Head 请求 但是如何使用它来指定 URL 呢 我在之前的帖子中发现了这一点 function UrlExist
  • Objective-C 中的非正式协议?

    我想知道是否有人可以解释一下 Objective C 中的非正式协议是什么 我尝试在苹果文档和其他一些书籍上理解它 但我的头仍然在旋转 所以如果有人可以用例子解释 我将非常感激 Thanks An 非正式协议正如乔纳森所说 通常是在 NSO
  • Matlab 中二维插值的函数形式

    我需要从二维数据数组构造一个插值函数 我需要返回实际函数的东西的原因是 我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算 因此 interp2 并没有解决这个问题 它不返回函数 我可以使用 TriScatteredInterp
  • stdClass 到数组?

    i have stdClass Object 0 gt stdClass Object one gt aaa two gt sss 1 gt stdClass Object one gt ddd two gt fff 2 gt stdCla
  • 如何从 TextInputLayout 中删除底部填充

    第一张图就是我想要的 第二张图是我实现的 正如您所看到的 TextInputLayout 的底部有一个填充 这使得灰色背景溢出超过 edittext 行 请不要建议负边距或填充 因为它在较新的 API 中不起作用 这是我为第一个文本输入布局
  • 插入排序 C#

    你们能帮我完成 C 中的基本插入排序吗 我有一个数组中的姓名和居住城市列表 需要通过比较居住城市来对该数组进行排序 列表必须按字母顺序排序 比较器已经设置完毕并可以工作 我只是对插入排序器编程有点迷失 因为这是我们第一次使用这种排序方法 到
  • Dart:当两个或多个任务等待同一个 Future 时会发生什么

    在 Dart 中 当两个或多个任务等待同一个 Future 时 当 Future 完成时 任务是否按照执行等待的顺序获得通知 运行 即第一个执行等待的任务是第一个运行的 这段代码保证输出2 int res 0 Future
  • ARKit - 如何在另一个 SCNNode 中包含 SCNText(语音气泡)

    我正在尝试在 ARKit 的语音气泡中创建一个带有简单文本的报价生成器 我可以用文本显示语音气泡 但文本始终从中间开始并溢出到语音气泡之外 任何帮助使其在语音气泡的左上角对齐并包裹在语音气泡内的帮助将不胜感激 Result Classes
  • 为什么 C# 在基本构造函数之前设置私有变量,而 VB.NET 却相反?

    有一个问题是比较 C 代码和 VB NET 看似相同的代码之间的结果完全不同 我写了一个程序 允许两个类 打架 无论出于何种原因 C 总是获胜 VB NET 有什么问题 https stackoverflow com questions 7
  • 从 Android 联系人中检索名字和姓氏结果为“1”和“null”

    我使用下面的代码从 android 联系人中检索名字和姓氏 DISPLAY NAME 返回联系人的姓名 而名字和姓氏分别返回 1 和 null 以下是代码 ContentResolver cr getContentResolver Curs
  • 如何在网页中进行字体抗锯齿?

    我一直在研究如何在网页上执行字体抗锯齿 以下是我找到的一些解决方案 webkit font smoothing属性 它似乎只适用于最新的浏览器 我没有尝试过 Google Font API 这很棒 而且易于使用 我想知道如何离线使用它 一个
  • PHP 中的冒泡排序实现? [复制]

    这个问题在这里已经有答案了 我需要用 PHP 做一个冒泡排序算法 我想知道是否有人有我可以使用的好例子 或者一个可以做到这一点的开源库 我在一个集合 数组 中有几个空格 我想用对象 一个人 填充这些空间 所以没有空间可以有男性和女性 这就是
  • 计算 scikit-learn 逻辑回归模型的残差偏差

    有没有办法计算残差scikit learn 逻辑回归模型 http scikit learn org stable modules generated sklearn linear model LogisticRegression html
  • np.sqrt 对于非常大的整数的奇怪行为

    gt gt gt np version 1 7 0 gt gt gt np sqrt 10000000000000000000 3162277660 1683793 gt gt gt np sqrt 10000000000000000000
  • 如何模拟 Stripe 订阅续订失败? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试测试不同的 Stripe 订阅失败 具体来说 当卡最初被接受且订阅处于活动状态时 有效订阅被续订 但续订付款被拒绝 或者客户在订阅期间
  • 不接受 TableAdapter 中的参数

    我目前正在尝试设置我的 TableAdapters 但它不允许我使用参数 这使得它毫无用处 当我创建新查询时 SELECT users FROM users WHERE name LIKE name 它告诉我附近有一个 SQL 错误 我使用
  • Moq中的设置方法,模棱两可的调用

    我正在尝试使用 Moq 来模拟界面 public interface IMatchSetupRepository IEnumerable
  • 将 json 对象数组插入 postgres 的查询

    我有一张带字段的表fields json 我创建了一个函数来将记录插入到该表中 这是调用 select from add name Yes value yes name No value no name Neutral value neut
  • Swift 4.1 deinitialize 和 deallocate(capacity:) 已弃用

    我一直这样说来形成 CGPoint 的 C 数组 let arr UnsafeMutablePointer
  • Spring JUnit 测试未加载完整的应用程序上下文

    您好 我正在尝试使用 spring junit 测试用例 并且我需要加载完整的应用程序上下文 然而 junit 测试不会初始化完整的应用程序上下文 测试类 RunWith SpringJUnit4ClassRunner class Spri