java.lang.AssertionError: Ожидаемое содержимое ответа: <TestVersion>, но было: <> - PullRequest
0 голосов
/ 10 ноября 2018
@RunWith(MockitoJUnitRunner.class)
public class VersionResourceImplTest {

    @Configuration
    public static class MockConfig {
        @Bean
        public Properties myProp() {
            Properties properties = new Properties();
            properties.setProperty("ra.bank.app.version", "TestVersion");
            return properties;
        }
    }

    @Value("#{myProp['ra.bank.app.version']}")
    private String applicationVersion;

    @Test
    public void testVersion() {
        Assert.assertEquals("TestVersion", applicationVersion);
    }

}

Это мой тестовый файл. Это дает следующую ошибку

java.lang.AssertionError: Response content expected:<TestVersion> but was:<>
    at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:54)
    at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:81)
    at org.springframework.test.web.servlet.result.ContentResultMatchers$5.match(ContentResultMatchers.java:149)
    at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:171)
    at com.db.creditrisk.rating.analysis.bank.ui.facade.v2.common.ws.VersionResourceImplTest.shouldReturnCorrectVersion(VersionResourceImplTest.java:49)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Пожалуйста, попробуйте использовать приведенный ниже код и дайте мне знать, если он работает.

 @RunWith(MockitoJUnitRunner.class)
  @ContextConfiguration(classes = VersionResourceImplTest.myProp.class)
  @TestPropertySource(properties = {
    "ra.bank.app.version=TestVersion",
})
    public class VersionResourceImplTest {

        @Value("${ra.bank.app.version}")
        private String applicationVersion;

        @Test
        public void testVersion() {
            Assert.assertEquals("TestVersion", applicationVersion);
        }

@Configuration
    public static class myProp{
        @Bean
    public static PropertySourcesPlaceholderConfigurer propertiesResolver() {
        return new PropertySourcesPlaceholderConfigurer();

    }

    }

или вы также можете использовать подход ниже.

@SpringBootTest
@SpringBootConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(properties = {
    "ra.bank.app.version=TestVersion"
})
public class FooTest {

  @Value("${ra.bank.app.version}")
  String applicationVersion;

  @Test
  public void testVersion() {
    Assert.assertEquals("TestVersion", applicationVersion);
 }

}
0 голосов
/ 10 ноября 2018

Для app.version=version2 в файле свойств мы читаем его, используя аннотацию @Value, как показано ниже.

@Value("${app.version}")
private String appVersion;

Итак, для решения вашей проблемы необходимо решить следующие проблемы.

1.Убедитесь, что файл свойств присутствует в вашем пути к классам.

@PropertySource("classpath:application-test.properties")

OR

@TestPropertySource("classpath:application-test.properties")

2.Печать значение перед оператором assert, чтобы узнать, действительно ли @Value вводит значение.

3. Изменить @Value("#{myProp['ra.bank.app.version']}") до @Value("${ra.bank.app.version}")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...