【问题标题】:App Engine Java Unit Test Environment SetupApp Engine Java 单元测试环境设置
【发布时间】:2011-09-28 16:56:17
【问题描述】:

我们使用 appengine-web.xml 文件将全局配置数据存储为系统属性(例如我们需要与之通信的各种开发服务器的位置)。使用 LocalServiceTestHelper 类运行单元测试时,这些属性不可用。似乎有一些方法可以在每个单元测试的 setUp 期间设置所需的系统属性(参见例如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”

【问题讨论】:

  • 项目环境用什么?行家? IDE?其他?
  • 你说你没有实现这个是什么意思?您尝试了什么,发生了什么?
  • @splix:我使用带有标准 App Engine 设置的 Eclipse 3.7

标签: java unit-testing google-app-engine


【解决方案1】:

根据the documentation 的说法,我认为setEnvAttributes() 方法的作用与您的预期不同。您设置的环境属性可使用 Environment.getAttributes() 而不是 System.getenv()

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2012-04-05
    • 1970-01-01
    • 2017-02-24
    相关资源
    最近更新 更多