Джунит не загружает файл свойств - PullRequest
2 голосов
/ 26 января 2012

Я пытаюсь запустить некоторые тесты, которым нужны значения из файла .properties, который я использую в производстве. Я могу убедиться, что тест получает местоположение файла свойств через -DapplicationProperties="fname", однако он не анализируется. Я также использую весну, это весна, которая обычно анализирует это для меня? Если нет, то должен ли junit делать это автоматически? Если нет, то как лучше всего убедиться, что свойства доступны для всех моих тестов через System.getProperty()?

Ответы [ 2 ]

1 голос
/ 26 января 2012

Ни Spring, ни JUnit не анализируют файлы свойств только потому, что есть параметр.

Для загрузки файлов свойств в Spring проще всего было бы использовать org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

См. Spring. Ссылка: 3.8.2.1. Пример: PropertyPlaceholderConfigurer пример.

См. Этот блог, чтобы узнать, как различать различные свойства и как хранить: http://www.summa -tech.com / blog / 2009/04/20/6-tips-for-management-property -файлы-с пружиной /

0 голосов
/ 26 января 2012

Я создал библиотеку с именем Системные правила для тестирования кода, которая использует java.lang.System.Используя эту библиотеку, вы пишете тесты JUnit, подобные этим:

import static org.junit.Assert.assertEquals;
import org.junit.contrib.java.lang.system.ProvideSystemProperty;
import org.junit.Rule;
import org.junit.Test;

public void MyTest {
  @Rule
  public ProvideSystemProperty myPropertyHasMyValue
    = new ProvideSystemProperty("MyProperty", "MyValue");

  @Test
  public void propertyIsThere() {
    assertEquals("MyValue", System.getProperty("MyProperty"));
  }
}

Также можно использовать свойства из файлов свойств:

@Rule
public ProvideSystemProperty properties
 = ProvideSystemProperty.fromFile("/home/myself/example.properties");

или

@Rule
public ProvideSystemProperty properties
 = ProvideSystemProperty.fromResource("example.properties");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...