title: Placeholders not getting resolved on @SpringBootTest
body: <p>I have a Spring Boot unit test that is set up like so:</p>
  <pre><code>@SpringBootTest(classes = Config.class)   
  class ConfigTest {
      
      @Test
      void getMeasurement_returnsValues() {
          Map&lt;String, String&gt; result = configs.getMeasurement();
          assertTrue(!result.isEmpty());
      }
  }
  </code></pre>
  <p>Config.class:</p>
  <pre><code>@Configuration
  @PropertySource(&quot;classpath:config.properties&quot;)
  public class Config {
  
      @Value(&quot;#{${Measurement}}&quot;)
      private Map&lt;String, String&gt; measurement;
  }
  </code></pre>
  <p>config.properties:</p>
  <pre><code>Measurement = {&quot;key&quot;: &quot;${val}&quot;}
  </code></pre>
  <p>Here's what baffles me: why does the unit test run fine?  I inspect the <code>result</code> map, and the entry's value shows up as &quot;${val}&quot;.  I thought it would fail due to Spring not being able to find an assigned value for the <code>val</code> parameter?  Meanwhile, application startup does fail for this reason, even though both the unit test and the real Config reference the same <code>config.properties</code> file.  What is <code>@SpringBootTest</code> doing differently such that it is ignoring the placeholder resolution?</p>
  <p>Resulting error on application startup:</p>
  <pre><code>java.lang.IllegalArgumentException: Could not resolve placeholder 'val' in value &quot;{&quot;key&quot;: &quot;${val}&quot;}&quot; 
  </code></pre>