测试命名空间



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

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

我也尝试使用 void 作为返回类型,但错误是相同的。

我现在想知道此错误是否来自我的代码中的错误,或者是否无法访问单元测试中的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();
}

相关内容