使用 JUnit 中的 Blobstore

2024-04-15

我正在尝试测试一些使用 Blobstore API 的代码,但我并不真正了解如何将一些文件放入 Blobstore 中。以下内容不起作用:

private BlobKey createBlob(String path) throws Exception {
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile file = fileService.createNewBlobFile("foobar");
    FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
    OutputStream output = Channels.newOutputStream(writeChannel);

    // copy files, guava-style
    InputStream input = new FileInputStream(path);
    assertNotNull(input);
    ByteStreams.copy(input, output); 
    input.close();

    // just in case...
    output.flush();
    output.close();
    writeChannel.close();

    // U NO WORK!!!
    BlobKey blobKey = fileService.getBlobKey(file);
    assertNotNull(blobKey);
    return blobKey;
}

我的配置:

new LocalServiceTestHelper(
    new LocalBlobstoreServiceTestConfig()
        //.setNoStorage(true)
        .setBackingStoreLocation("war/WEB-INF/appengine-generated"),
    new LocalFileServiceTestConfig()
).setUp();

有任何想法吗?


以下测试运行成功

public class TestBlobstore {
  private static final LocalServiceTestHelper helper = 
    new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig(),
                               new LocalBlobstoreServiceTestConfig()
                              );

  public TestBlobstore() {
  }

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

  @Test
  public void testBlobstore() throws Exception {
    System.out.println(createBlob("test.txt"));
  }

  private BlobKey createBlob(String path) throws Exception {
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile file = fileService.createNewBlobFile("foobar");
    FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
    OutputStream output = Channels.newOutputStream(writeChannel);

    // copy files, guava-style
    InputStream input = new FileInputStream(path);
    assertNotNull(input);
    ByteStreams.copy(input, output); 
    input.close();

    // just in case...
    output.flush();
    output.close();
    writeChannel.closeFinally();

    // U NO WORK!!!
    BlobKey blobKey = fileService.getBlobKey(file);
    assertNotNull(blobKey);
    return blobKey;
  }
}

两个修改:

  • 用户 LocalBlobstoreServiceTestConfig 而不是 LocalFileServiceTestConfig
  • writeChannel.closeFinally();而不是 writeChannel.close()

希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JUnit 中的 Blobstore 的相关文章

  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • crypto++ / pycrypto 与谷歌应用程序引擎

    我正在使用 crypto 将 AES 加密的 http 请求发送到应用程序引擎 计划在那里解密它们 我的计划是加密 之后的部分所以它是这样的 http myurl com Command eiwjfsdlfjldkjfs http myur
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 如何避免 ArrayIndexOutOfBoundsException 或 IndexOutOfBoundsException? [复制]

    这个问题在这里已经有答案了 如果你的问题是我得到了java lang ArrayIndexOutOfBoundsException在我的代码中 我不明白为什么会发生这种情况 这意味着什么以及如何避免它 这应该是最全面的典范 https me
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • 如何在 Java 中创建接受多个值的单个注释

    我有一个名为 Retention RetentionPolicy SOURCE Target ElementType METHOD public interface JIRA The Key Bug number JIRA referenc
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • Java中HashMap和ArrayList的区别?

    在爪哇 ArrayList and HashMap被用作集合 但我不明白我们应该在哪些情况下使用ArrayList以及使用时间HashMap 他们两者之间的主要区别是什么 您具体询问的是 ArrayList 和 HashMap 但我认为要完
  • 如何使用play框架上传多个文件?

    我在用play framework 2 1 2 使用java我正在创建视图来上传多个文件 我的代码在这里 form action routes upload up enctype gt multipart form data
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 是否有 AWS 入站策略会干扰“授权:持有者 {token}”数据? [复制]

    这个问题在这里已经有答案了 上面的问题是与这些链接相关的线程 Link 1 https stackoverflow com questions 62673139 anonymoususer object has no attribute i
  • 使用参数时内联汇编混乱

    我正在 x86 64 Linux 上试验 Rust 的内联汇编功能 我写了一个简单的程序 调用exit值为 23 的系统调用 feature asm fn main unsafe asm mov 60 rax mov 23 rdi sysc
  • 如何在Python中使用gRPC处理自定义异常?

    我需要实现自定义异常来使用 Python 处理 gRPC 请求错误 对于 HTTP 请求 它很简单 当出现错误代码等时 请求库可以很好地捕获它 我正在寻找 gRPC 的类似方法来执行以下操作 try send gRPC request ex
  • 如何查找 MASSIVE 数组中哪些项出现多次?

    这是一个非常简单的问题 哪些项目在列表中出现多次 array mike mike mike john john peter clark 正确答案是 mike john 看来我们只能这样做 array select e ary count e
  • Fabric js 中的 Canvas 客户端大小

    在通常的画布CSS宽度和客户端宽度可能不等于彼此 如何在Fabricjs上得到这个 举个例子 我想在页面上使用 640 360px 的画布 里面有 1280 720px 的图像 我知道我可以缩放图像 但 dataUrl 会给我一个较小的图片
  • 仅处理天数时,“datetime.timedelta”和“dateutil.relativedelta.relativedelta”之间有什么区别?

    有什么区别datetime timedelta http docs python org library datetime html timedelta objects 来自Python的标准库 和dateutil relativedelt
  • 按最大(时间)mysql分组

    首先 这有点重复 按最大日期分组 https stackoverflow com questions 18221999 group by having max date 18222124 noredirect 1 comment385131
  • 用 t 个随机数生成位向量

    我想生成一个数组 向量v大小的p with t那些和p t零 的位置t ones must是随机的 这是我迄今为止编写的解决方案 但我不确定它是否是最有效的解决方案 另外我从来没用过random device or mt19937 找到他们
  • 带分钟的 DATEDIFF 不返回预期值

    假设我有以下包含数据的 SQL Server 2008 表 CREATE TABLE tbl dtIn DATETIME2 dtOut DATETIME2 INSERT tbl VALUES 9 10 2012 5 14 10 AM 9 1
  • 如何让Stata在表格中报告零

    我正在尝试使用tabulateStata 中的命令创建频率时间序列 当我尝试合并输出时 问题就出现了tabulate运行完每个日期后 tabulate当相关变量的值不存在观察值时 不会将 0 作为条目包含在内 例如 如果我想在三年内统计一个
  • 整数或布尔值的 TensorFlow 占位符变量不起作用

    我在 TensorFlow 中使用以下代码片段有条件地从一个或另一个源提取数据 if name main with tf device gpu 0 with tf Graph as default with tf variable scop
  • 二元矩阵查找距离为 k 的所有单元格

    我有一个二进制矩阵0 and 1 并给定整数 K gt 0 现在我想找到所有可能的单元格 这些单元格与具有该值的单元格的最大距离为 K1并将它们标记为某个字母 x 单元格 A 5 2 和 A 1 4 之间的距离为 1 5 4 2 6 Exa
  • Maven 2 可以在同一项目中使用两个不同版本的构建插件吗?

    我的项目需要新版本的 Maven 构建插件的功能some的目标 但新版本在其他目标之一上失败了 由于插件中的错误 作为修复错误之前的解决方法 我想使用旧版本的插件运行损坏的目标 Edit 更具体地说 我需要使用 gwt maven plug
  • Typescript 接口中的日期在检查时实际上是字符串

    不幸的是 重现这个问题的总代码会很广泛 所以我希望我的问题是显而易见的 我可以轻松提供 如果需要 我会发布更完整的解决方案 首先 我定义一个接口 export interface ITest myDate Date 然后我创建一个数组用于测
  • 宽度和高度似乎不适用于:在伪元素之前

    Here http jsfiddle net C7rSa 是一把小提琴 p foo a class infolink href bar a baz p and a infolink before content background blu
  • C# 有没有办法设置控制台应用程序的滚动位置

    你好 我已经在谷歌上搜索这个问题很长一段时间了 但找不到任何关于我将如何做这件事的结果 我目前有一个选择菜单 用户可以从中选择选项列表 该菜单从顶部开始 但每次刷新列表时窗口都会显示最后一个选项 我想要做的就是能够在窗口中显示带有所选选项的
  • 如何将 bash 脚本变量与 sed 一起使用[重复]

    这个问题在这里已经有答案了 我执行以下 bash 脚本 bin bash version 1 echo version sed s version number version template txt gt readme txt 我希望用
  • 设置今日扩展小工具的通知

    我正在创建一个简单的计时器应用程序 它将重点关注今天的扩展小部件功能 用户可以通过点击从此处启动计时器 唯一的问题是我需要从小部件设置本地通知 我尝试使用 UIApplicaton sharedApplication ScheduleLoc
  • 按组填写缺失日期

    我有一个数据集 如下所示 shop id item id time value 150 1 2015 07 10 3 150 1 2015 07 11 5 150 1 2015 07 13 2 150 2 2015 07 10 15 150
  • 使用 JUnit 中的 Blobstore

    我正在尝试测试一些使用 Blobstore API 的代码 但我并不真正了解如何将一些文件放入 Blobstore 中 以下内容不起作用 private BlobKey createBlob String path throws Excep