java - App Engine Java 单元测试环境设置

标签 java unit-testing google-app-engine

我们使用 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"));
}

这会打印出“我的环境变量:null”

最佳答案

根据 the documentation ,我认为方法 setEnvAttributes() 做了一些与您预期不同的事情。您正在设置的环境属性可使用 Environment.getAttributes() 获得不是 System.getenv()

关于java - App Engine Java 单元测试环境设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7586796/

相关文章:

python - Django单元测试等待数据库

unit-testing - 包含文件系统调用的单元测试方法

google-app-engine - 带有 Golang : How do you parse URL path segments as variables? 的 Google App Engine

java - 在自定义布局类上膨胀 xml-Layout 时出现问题

java - 在 ListView 中包含 AdMobs 广告

java - 无法终止 Java .txt 写入程序

java - 简单的 jdbcTemplate.query() 应该返回一个列表,但不是

silverlight - 使用 MVVM Light 和 DispatcherHelper 进行单元测试

java - 在 AppEngine 中从 Servlet 调用 Web 服务

google-app-engine - 将子域映射到应用引擎上的特定服务