将App Engine SDK更新到1.7.0后,我们的某些单元测试开始失败。
在SDK 1.6.x中,我断言blob被删除了这样:
try {
fileService.getBlobFile(blobKey);
Assert.fail("Blob not deleted: " + blobKey);
} catch (FileNotFoundException expected) {
// OK
}
在SDK 1.7.0中,getBlobFile()不再抛出FileNotFoundException。
我试图引发异常,但它没有成功(没有抛出异常):
try {
AppEngineFile blobFile = fileService.getBlobFile(blobKey);
boolean readable = blobFile.isReadable();
FileReadChannel channel = fileService.openReadChannel(blobFile, false);
channel.position(1);
try {
channel.close();
} catch (Exception e) {
// Silent
}
Assert.fail("Blob not deleted: " + blobKey);
} catch (Exception expected) {
// OK
}
应该删除blob,但是可以为它打开一个频道......
那么,任何关于如何检查删除的想法都是在单元测试中成功的吗?
答案 0 :(得分:1)
尝试使用blobstoreService.fetchData检索文件的第一个字节。
如果文件不存在,它将抛出。
答案 1 :(得分:0)
App Engine尚不支持JDK 1.7。