测试命名空间
Testing the namespace
在我的应用程序中,我有一个方法使用它的一个参数来设置命名空间。该代码有效,但是当我尝试对其进行 运行 测试时,我在 NamespaceManager.set()
处得到一个 NullPointerException
。
public String create(Bar bar) {
NamespaceManager.set(bar.getFoo.toString());
// more code
return NamespaceManager.get();
}
我也试过使用 void 作为 return 类型,但错误是一样的。
我现在想知道这个错误是我代码中的错误还是无法在单元测试中访问 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();
}
在我的应用程序中,我有一个方法使用它的一个参数来设置命名空间。该代码有效,但是当我尝试对其进行 运行 测试时,我在 NamespaceManager.set()
处得到一个 NullPointerException
。
public String create(Bar bar) {
NamespaceManager.set(bar.getFoo.toString());
// more code
return NamespaceManager.get();
}
我也试过使用 void 作为 return 类型,但错误是一样的。
我现在想知道这个错误是我代码中的错误还是无法在单元测试中访问 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();
}