java - 在单元测试中为 @Import spring 配置设置 @Value 属性?

标签 java spring unit-testing

如何为我 @Import 到单元测试中的上下文设置 @Value 属性?

例如:

@Configuration
public void DatabaseTestsConfiguration
{
  @Value("${test.generateddl:true}")
  private boolean generateDdl;

  @Bean
  public JpaVendorAdapter jpaVendorAdapter()
  {
    HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
    hibernateJpaVendorAdapter.setShowSql( false );
    hibernateJpaVendorAdapter.setGenerateDdl( generateDdl );
    hibernateJpaVendorAdapter.setDatabase( Database.H2 );
    return hibernateJpaVendorAdapter;
  }

   // Some more @Bean's here
}

在我的单元测试中:

@Test
@ContextConfiguration
public void SomeTest extends AbstractTransactionalTestNGSpringContextTests
{

  @Configuration
  @Import(DatabaseTestsConfiguration.class)
  public static class TestConfiguration
  {
  }
}

现在如何在单元测试中将属性 test. generateddl 重写为 false?请注意,我只想将其用于此单元测试,因此不能在命令行上指定某些内容。

最佳答案

您可能想检查http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/TestPropertySource.html#properties--

来自 spring docu 的示例:

@ContextConfiguration
@TestPropertySource(properties = { "timezone = GMT", "port: 4242" })

关于java - 在单元测试中为 @Import spring 配置设置 @Value 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28278217/

相关文章:

java - com.fasterxml.jackson.databind.exc.InvalidDefinitionException : Cannot construct instance of `javax.xml.bind.JAXBElement`

javascript - 如何从 <select> 检索值并将其放入隐藏的 JSTL 中

java - 如何仅将字符串传递给 mybatis 集合列中的参数?

javascript - Mocha 模拟导入变量

swift - 尝试链接 XCTest 目标的 undefined symbol

java - 如何将主类的实例传递给多个监听器?

java - 属性文件点分隔的键名

java - 堆大小参数 xmx 被覆盖

java - 将字符串转换为日期

c# - 使用 ASP.NET Core 在单元测试中模拟 POST 请求