テストプロパティファイルを使用でき、いくつかのプロパティをオーバーライドできるようにしたい。すべての単一のプロパティをオーバーライドすることは醜い高速になります。Spring環境で選択されたプロパティのみを模擬する
@Autowired private Environment env;
- :
この
は私が@RunWith(SpringRunner.class) @SpringBootTest(classes = MyApp.class) @TestPropertySource( locations = { "classpath:myapp-test.properties" }, properties = { "test.key = testValue" }) public class EnvironmentMockedPropertiesTest { @Autowired private Environment env; // @MockBean private Environment env; @Test public void testExistingProperty() { // some.property=someValue final String keyActual = "some.property"; final String expected = "someValue"; final String actual = env.getProperty(keyActual); assertEquals(expected, actual); } @Test public void testMockedProperty() { final String keyMocked = "mocked.test.key"; final String expected = "mockedTestValue"; when(env.getProperty(keyMocked)).thenReturn(expected); final String actual = env.getProperty(keyMocked); assertEquals(expected, actual); } @Test public void testOverriddenProperty() { final String expected = "testValue"; final String actual = env.getProperty("test.key"); assertEquals(expected, actual); } }
私は何を見つけることである性質を模擬し、テストケース内の既存のプロパティを使用するために自分の能力をテストするために使用していたコードです
testExistingProperty()
およびtestOverriddenProperty()
は、パス testMockedProperty()
は
- :
@MockBean private Environment env;
testMockedProperty()
失敗testExistingProperty()
とtestOverriddenProperty()
は私が目指しています何を達成するための方法はあり
に失敗渡しますか?
依存性:
<spring.boot.version>1.4.3.RELEASE</spring.boot.version>
...
<!-- Spring -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<!-- Starter for testing Spring Boot applications with libraries including JUnit,
Hamcrest and Mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version>
</dependency>
これを実現するには、モックされたデータと実際のデータの両方を処理する能力を持つ環境変数envを1つだけ使用したいと思っていますか? –