Настройка среды модульного тестирования Java App Engine - PullRequest
3 голосов
/ 28 сентября 2011

мы используем файл appengine-web.xml для хранения глобальных данных конфигурации в качестве системных свойств (например, расположение различных серверов разработки, с которыми нам нужно взаимодействовать). Эти свойства недоступны при запуске модульного теста с классом LocalServiceTestHelper. Кажется, существуют методы для установки желаемых системных свойств во время установки каждого модульного теста (см., Например, http://code.google.com/appengine/docs/java/tools/localunittesting/javadoc/com/google/appengine/tools/development/testing/LocalServiceTestHelper.html#setEnvAttributes(java.util.Map)), но до сих пор мы не смогли реализовать это.

Было бы здорово, если бы кто-нибудь мог привести простой пример того, как установить системное свойство в модульном тесте движка приложения?

РЕДАКТИРОВАТЬ: вот минимальный пример, который демонстрирует, что я пытаюсь сделать

import java.util.HashMap;
import java.util.Map;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;

public class MyTest {
    private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Before
public void setUp() {
    Map<String, Object> values = new HashMap<String, Object>();
    values.put("de.foo.bar", "baz");
    helper.setEnvAttributes(values);
    helper.setUp();
}

@After
public void tearDown() {
    helper.tearDown();
}

@Test
public void foo() {
    System.out.println("my env variable: " + System.getenv("de.foo.bar"));
}

}

Это выводит "my env variable: null"

1 Ответ

0 голосов
/ 25 ноября 2013

Согласно документации , я думаю, что метод setEnvAttributes() делает нечто иное, чем вы ожидаете.Атрибуты среды, которые вы устанавливаете, доступны с использованием Environment.getAttributes(), а не System.getenv()

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