首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Apache横梁单元测试中正确测试pcollection长度

如何在Apache横梁单元测试中正确测试pcollection长度
EN

Stack Overflow用户
提问于 2020-09-22 21:06:03
回答 1查看 309关注 0票数 0

我想知道哪种方法是测试检查束流管道产生的输出长度的最好方法。

我有一些像这样的测试代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
test_data = [
    {'kind': 'storage#object', 'name': 'file1.doc', 'contentType': 'application/octet-stream', 'bucket': 'bucket123' },
    {'kind': 'storage#object', 'name': 'file2.pdf', 'contentType': 'application/pdf','bucket': 'bucket234'},
    {'kind': 'storage#object', 'name': 'file3.msg', 'contentType': 'message/rfc822', 'bucket': 'bucket345'}
]

with TestPipeline() as p:
   output = (p 
             | beam.Create(test_data)
             | beam.ParDo(DoFn_To_Test()).with_outputs('ok','error')
   )

我想测试确保test_data列表中的所有元素都转到“output.ok”。我认为这样做的方法是这样计算它们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with TestPipeline() as p:
   output = (p 
             | beam.Create(testdata) 
             | beam.ParDo(DoFn_To_Test()).with_outputs('ok','error')
   )

   okay_count = (output.ok | beam.Map(lambda x: ('dummy_key',x)) 
                 | beam.GroupByKey()  # This gets ('dumm_key',[element1,element2....])
                 | beam.Map(lambda x: len(x[1]) )  # Drop the key and get the lengh of the list
   )

   # And finally check^H^H^H^H^H^H assert the count is correct:
   assert_that(okay_count, equal_to([len(test_data)])

这是可行的;但我觉得这不是最好的方法,我相信还有更多的方法。

最佳选择(到目前为止)

这是最新推荐的最佳选项:使用beam.combiners.Count.Globally()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with TestPipeline() as p:
   output = (p 
             | beam.Create(testdata) 
             | beam.ParDo(DoFn_To_Test()).with_outputs('ok','error')
   )

   okay_count = output | beam.combiners.Count.Globally()
   assert_that(okay_count, equal_to([len(test_data)])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-25 16:16:02

你在问题中回答了你自己的问题。将它写在这里作为答案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with TestPipeline() as p:
   output = (p 
             | beam.Create(testdata) 
             | beam.ParDo(DoFn_To_Test()).with_outputs('ok','error')
   )

   okay_count = output | beam.combiners.Count.Globally()
   assert_that(okay_count, equal_to([len(test_data)])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64017676

复制
相关文章
如何正确编写单元测试?
国内的大多数互联网公司只注重软件功能,却往往忽略了极为重要的软件质量,在一个月以前,我认为遵循了代码规范(阿里规约、sonar)的软件系统已经算是一个质量比较好的软件系统了,但是在我了解单元测试以后,才发现自己以前的想法有多么愚蠢,单元测试的作用远比我想象的要重要许多。经过一段时间的研究,总算对单元测试有了一个大概的了解,然而网上的文章零零散散,大多是讲解一些比较简单的demo,参考价值比较有限,因此我决定写一篇关于单元测试的文章来总结自己这段时间的收获与心得。
敲得码黛
2021/11/26
3K0
如何正确编写单元测试?
如何正确执行Jedis单元测试
Jedis 简介引用官方的介绍:Jedis is a Java client for Redis designed for performance and ease of use.本文主要讲如何在修改完Jedis代码之后完成单元测试。执行单元测试1、下载Jedis代码git clone git@github.com:redis/jedis.git2、 下载好代码之后需要下载并且安装Rediscd jedismake circleci-install如果上面命令执行失败,则执行下面命令git clone ht
zeekling
2022/07/16
4560
如何正确执行Jedis单元测试
Jedis 简介 引用官方的介绍: Jedis is a Java client for Redis designed for performance and ease of use. 本文主要讲如何在修改完Jedis代码之后完成单元测试。 执行单元测试 1、下载Jedis代码 git clone git@github.com:redis/jedis.git 2、 下载好代码之后需要下载并且安装Redis cd jedis make circleci-install 如果上面命令执行失败,则执行下面命令
zeekling
2022/08/26
5120
如何正确执行Jedis单元测试
如何在单元测试中对写数据库进行测试?
转账是银行等金融系统中常见的一个场景。在在最近的一个针对转账服务的单元测试中,笔者就遇到了上述问题。一个极端简化的转账申请如下图:
Antony
2020/12/01
3.8K0
如何在单元测试中对写数据库进行测试?
如何在单元测试中设置系统环境变量
有时我们需要通过读取系统环境变量来获取一些有用的信息,比如系统路径、临时目录等。在系统真正运行的时候我们可以通过启动命令行,如:java -Dxxx.xxx=xxxx …,或者使用System.setProperty(“xxx.xxx”, “xxx.xxx”)来设置系统环境变量。但在单元测试时如何设置这些系统环境变量又成了一个让人头疼的问题。有些小伙伴是在setUp方法里设置,比如:
Allen Cheng
2018/09/10
8.1K0
单元测试类检测调用是否正确
我这里写了个单元测试类,如下所示,逻辑很简单,调用OneConsumerServiceImpl.publish方法一百次,产生一百个事件,再检查OneConsumerServiceImpl记录的消费事件总数是不是等于一百: package com.bolingcavalry.service.impl; import com.bolingcavalry.service.LowLevelOperateService; import lombok.extern.slf4j.Slf4j; import org.j
用户8671053
2021/10/06
2610
什么是单元测试,集成测试,系统测试_软件测试中的单元测试
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net
全栈程序员站长
2022/11/04
8640
在单元测试中如何正确的处理第三方依赖
单元测试是非常重要的,我认为编写单元测试是程序员需要最自觉的一件事,也就是就算没有外部要求及约束的情况下,也要主动编写单元测试。
御剑
2022/11/18
2.1K0
在单元测试中如何正确的处理第三方依赖
如何在Bash中获取数组长度?
在Bash脚本中,数组是一种常用的数据结构,用于存储多个值。在处理数组时,经常需要知道数组的长度,即数组中元素的个数。本文将详细介绍如何在Bash中获取数组长度的方法,以帮助您更好地处理数组操作。
网络技术联盟站
2023/06/17
1.3K0
如何在Bash中获取数组长度?
Beam-介绍
Beam提供了一套统一的API来处理两种数据处理模式(批和流),让我们只需要将注意力专注于在数据处理的算法上,而不用再花时间去对两种数据处理模式上的差异进行维护。
Dlimeng
2023/06/29
2740
Beam-介绍
【单元测试】--编写单元测试
这是一个简单的NUnit单元测试的示例,展示了如何创建测试项目,编写测试用例,运行测试以及查看测试结果。随着你的项目复杂性的增加,你可以编写更多的测试用例来确保你的代码按预期工作。
喵叔
2023/10/22
4440
VC++中单元测试
Visual Studio中可以直接进行C++项目的单元测试,下面为自己测试的步骤记录。(测试环境为Visual Studio2013,2012步骤相同)
卡尔曼和玻尔兹曼谁曼
2019/01/25
8840
VisualStudio中的单元测试
上一篇文章重温了《单元测试的艺术》里提到的单元测试的技术及原则。这篇文章实践使用VisualStudio 2019进行单元测试。
dino.c
2019/07/31
3.7K0
VisualStudio中的单元测试
代码中的单元测试与集成测试
对应用程序的准确测试决定了它的性能、可用性和可靠性。虽然测试是软件开发生命周期的一个组成部分,但是没有简单的方法可以一次完成它。每个软件产品都要经过开发人员和专门的测试团队的一系列测试。执行这些测试是为了确定应用程序在暴露于不同情况时的执行或行为。
从大数据到人工智能
2022/01/19
9880
如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync?
发布于 2017-11-07 13:02 更新于 2018-08-19 11:08
walterlv
2018/09/18
1.4K0
如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync?
Django单元测试中Fixtures用法
在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。
BigYoung小站
2020/05/05
4040
如何在Ubuntu中安装Apache Tomcat
如果要运行包含Java服务器页面编码或Java servlet的网页,可以使用Apache Tomcat 。 它是Apache Software Foundation发布的开源Web服务器和servlet容器。
用户7639835
2021/08/27
5.4K0
junit单元测试中私有方法测试
该文章讲述了单元测试中私有方法如何被测试,以及反射方法的使用。文章强调了单元测试的重要性,并介绍了反射方法的使用场景。在单元测试中,私有方法可以通过反射的方式被调用,这可以用于测试私有方法和私有静态方法。同时,文章也介绍了一些注意事项,如将代码写的更清晰,更易于测试,以及使用反射方法时需要注意的问题等。
杉枫
2018/01/03
2.4K0
C#中的单元测试
C#程序可以使用NUnit框架进行单元测试,NUnit是.NET语言的一个测试框架,和Java语言的JUnit同属于XUnit。
卡尔曼和玻尔兹曼谁曼
2019/01/25
2.2K0
点击加载更多

相似问题

如何在Apache光束中“限制”PCollection?

24

基于无界PCollection的Apache光束集成测试

11

在Apache横梁中连接行

131

带有Apache横梁的弹簧

19

如何在PCollection - Apache波束中组合数据

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文