google-app-engine - 测试命名空间

标签 google-app-engine testing junit namespaces multi-tenant

在我的应用程序中,我有一个方法使用它的一个参数来设置命名空间。该代码有效,但当我尝试对其运行测试时,我在 NamespaceManager.set() 处收到了一个 NullPointerException

    public String create(Bar bar) {
        NamespaceManager.set(bar.getFoo.toString());
        // more code
        return NamespaceManager.get();
}

我也试过使用 void 作为返回类型,但错误是一样的。

我现在想知道这个错误是否来 self 的代码中的错误,或者是否无法在单元测试中访问 NamespaceManager

编辑 测试代码:

 @Before
    public void before() {
        Bar bar = new Bar();
        bar.setFoo(1L);

        CSDatastoreService csDatastore = Mockito.mock(CSDatastoreServiceImpl.class);

        SController ctrl = new SController(csDatastore);
   } 



@Test
public void createSetsNamaspaceToFooOfBar() {
    Assert.assertSame(ctrl.create(bar), bar.getFoo().toString());
}

最佳答案

在单元测试中调用 NamespaceManager 之前,创建 com.google.appengine.tools.development.testing.LocalServiceTestHelper 实例并调用 setup() .

例子

public final static LocalServiceTestHelper helper = new LocalServiceTestHelper(
            new LocalUserServiceTestConfig(),
            new LocalDatastoreServiceTestConfig()
                    .setDefaultHighRepJobPolicyUnappliedJobPercentage(100.0f)
                    .setNoIndexAutoGen(true));

再往下:

@Before
public void setup() {
    helper.setUp();
}

关于google-app-engine - 测试命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28940365/

相关文章:

c# - 如何在 C# 中进行性能测试

java - 分层 Java Rest 应用程序的单元测试策略

python - Google App Engine/Datastore/Flask/Python 应用程序中的内存泄漏

java - 通过 Datanucleus REST API 或其他一些 Java API 将 Google App Engine DataStore 与本地实例同步

google-app-engine - 从应用引擎端点提供 blob

java - junit5 无法识别 csv 文件

java - 在 JMock 中捕获参数的标准方法

google-app-engine - Google App Engine Cron 时间表和时长

testing - Vbscript 的自动化/单元测试

testing - 如何自动测试 Tridion 模板(使用 TOM.NET)