Load properties when MockitoJUnitRunner is used












0















I'm trying to load a property value from my application-test.properties in my service unit tests(using MockitoJUnitRunner.class) but it gets always a null value using @Value annotation.



@RunWith(MockitoJUnitRunner.class)
public class AlertQueryServiceImplTest {

@Value("${raw.path}")
private static String rawJson;

@InjectMocks
private AlertQueryServiceImpl alertQueryServiceImpl;

@Mock
private AlertCBDAOImpl alertCBDAOImpl;

private List<Alert> alertListExpected;

@Before
public void setUp() {
ReflectionTestUtils.setField(alertQueryServiceImpl, "url", "http://someurl");
alertListExpected = JsonUtils.
loadObjectList(Alert.class, JsonUtils.ALERTS_FILE);
assertFalse(alertListExpected.isEmpty());
}

@Test
public void shouldReturnAlerts() {
User userTest = new User("108998", "3000747091");
JsonDocument jsonDocExpected = JsonUtils.stringToJsonDocument(rawJson, userTest.getAssociatedBE());

when(alertCBDAOImpl.getDoc(userTest.getAssociatedBE())).thenReturn(jsonDocExpected);
when(alertCBDAOImpl.getAlerts(jsonDocExpected)).thenReturn(alertListExpected);
}
}


How could I load raw.path property into rawJson field?










share|improve this question





























    0















    I'm trying to load a property value from my application-test.properties in my service unit tests(using MockitoJUnitRunner.class) but it gets always a null value using @Value annotation.



    @RunWith(MockitoJUnitRunner.class)
    public class AlertQueryServiceImplTest {

    @Value("${raw.path}")
    private static String rawJson;

    @InjectMocks
    private AlertQueryServiceImpl alertQueryServiceImpl;

    @Mock
    private AlertCBDAOImpl alertCBDAOImpl;

    private List<Alert> alertListExpected;

    @Before
    public void setUp() {
    ReflectionTestUtils.setField(alertQueryServiceImpl, "url", "http://someurl");
    alertListExpected = JsonUtils.
    loadObjectList(Alert.class, JsonUtils.ALERTS_FILE);
    assertFalse(alertListExpected.isEmpty());
    }

    @Test
    public void shouldReturnAlerts() {
    User userTest = new User("108998", "3000747091");
    JsonDocument jsonDocExpected = JsonUtils.stringToJsonDocument(rawJson, userTest.getAssociatedBE());

    when(alertCBDAOImpl.getDoc(userTest.getAssociatedBE())).thenReturn(jsonDocExpected);
    when(alertCBDAOImpl.getAlerts(jsonDocExpected)).thenReturn(alertListExpected);
    }
    }


    How could I load raw.path property into rawJson field?










    share|improve this question



























      0












      0








      0








      I'm trying to load a property value from my application-test.properties in my service unit tests(using MockitoJUnitRunner.class) but it gets always a null value using @Value annotation.



      @RunWith(MockitoJUnitRunner.class)
      public class AlertQueryServiceImplTest {

      @Value("${raw.path}")
      private static String rawJson;

      @InjectMocks
      private AlertQueryServiceImpl alertQueryServiceImpl;

      @Mock
      private AlertCBDAOImpl alertCBDAOImpl;

      private List<Alert> alertListExpected;

      @Before
      public void setUp() {
      ReflectionTestUtils.setField(alertQueryServiceImpl, "url", "http://someurl");
      alertListExpected = JsonUtils.
      loadObjectList(Alert.class, JsonUtils.ALERTS_FILE);
      assertFalse(alertListExpected.isEmpty());
      }

      @Test
      public void shouldReturnAlerts() {
      User userTest = new User("108998", "3000747091");
      JsonDocument jsonDocExpected = JsonUtils.stringToJsonDocument(rawJson, userTest.getAssociatedBE());

      when(alertCBDAOImpl.getDoc(userTest.getAssociatedBE())).thenReturn(jsonDocExpected);
      when(alertCBDAOImpl.getAlerts(jsonDocExpected)).thenReturn(alertListExpected);
      }
      }


      How could I load raw.path property into rawJson field?










      share|improve this question
















      I'm trying to load a property value from my application-test.properties in my service unit tests(using MockitoJUnitRunner.class) but it gets always a null value using @Value annotation.



      @RunWith(MockitoJUnitRunner.class)
      public class AlertQueryServiceImplTest {

      @Value("${raw.path}")
      private static String rawJson;

      @InjectMocks
      private AlertQueryServiceImpl alertQueryServiceImpl;

      @Mock
      private AlertCBDAOImpl alertCBDAOImpl;

      private List<Alert> alertListExpected;

      @Before
      public void setUp() {
      ReflectionTestUtils.setField(alertQueryServiceImpl, "url", "http://someurl");
      alertListExpected = JsonUtils.
      loadObjectList(Alert.class, JsonUtils.ALERTS_FILE);
      assertFalse(alertListExpected.isEmpty());
      }

      @Test
      public void shouldReturnAlerts() {
      User userTest = new User("108998", "3000747091");
      JsonDocument jsonDocExpected = JsonUtils.stringToJsonDocument(rawJson, userTest.getAssociatedBE());

      when(alertCBDAOImpl.getDoc(userTest.getAssociatedBE())).thenReturn(jsonDocExpected);
      when(alertCBDAOImpl.getAlerts(jsonDocExpected)).thenReturn(alertListExpected);
      }
      }


      How could I load raw.path property into rawJson field?







      java spring spring-boot mockito






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 15 '18 at 10:25









      Vadim Kotov

      4,38953247




      4,38953247










      asked Nov 14 '18 at 9:04









      dataProcsdataProcs

      128




      128
























          1 Answer
          1






          active

          oldest

          votes


















          0














          First you need to set active profile to access application-test.properties file you may do that using @ActiveProfiles("test") annotation on your test class.
          https://www.baeldung.com/spring-testing-separate-data-source
          I don't think @Value annotation will work with static keyword.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53296405%2fload-properties-when-mockitojunitrunner-is-used%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            First you need to set active profile to access application-test.properties file you may do that using @ActiveProfiles("test") annotation on your test class.
            https://www.baeldung.com/spring-testing-separate-data-source
            I don't think @Value annotation will work with static keyword.






            share|improve this answer




























              0














              First you need to set active profile to access application-test.properties file you may do that using @ActiveProfiles("test") annotation on your test class.
              https://www.baeldung.com/spring-testing-separate-data-source
              I don't think @Value annotation will work with static keyword.






              share|improve this answer


























                0












                0








                0







                First you need to set active profile to access application-test.properties file you may do that using @ActiveProfiles("test") annotation on your test class.
                https://www.baeldung.com/spring-testing-separate-data-source
                I don't think @Value annotation will work with static keyword.






                share|improve this answer













                First you need to set active profile to access application-test.properties file you may do that using @ActiveProfiles("test") annotation on your test class.
                https://www.baeldung.com/spring-testing-separate-data-source
                I don't think @Value annotation will work with static keyword.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 15 '18 at 10:20









                RavenloupRavenloup

                366




                366






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53296405%2fload-properties-when-mockitojunitrunner-is-used%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    這個網誌中的熱門文章

                    Xamarin.form Move up view when keyboard appear

                    Post-Redirect-Get with Spring WebFlux and Thymeleaf

                    Anylogic : not able to use stopDelay()