Spark菜鸟学习营Day4

单元测试程序的编写

Spark相比于传统代码是比较难以调试的,单元测试的编写是非常必要的。

Step0:需求分析

在测试案例编写前,需完成需求分析工作,明确程序所有的输入和输出情况。

具体请见需求分析章节。

Step1:新建测试案例

测试案例统一放置在如下位置:

compute-->src-->test-->java-->com.icbc.aas.darts.compute-->split.processor

![2016-07-26 16-56-36](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 16-56-36.jpg)

选择New-->Java Class,在窗口中,输入测试代码名称,Kind选择ProcessorTest

![2016-07-26 16-58-02](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 16-58-02.jpg)

如果无法选到ProcessorTest,请在Settings-->File and Code Template,右上角选择Project

![2016-07-26 17-01-00](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-01-00.jpg)

在生成的测试案例代码中,首先完善addParams方法。

![2016-07-26 17-02-22](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-02-22.jpg)

Step2:输入数据准备

针对每个输入数据,循环以下步骤:

Step2.1:pojo(Java数据结构)建立

运行PojoMaker工具

![2016-07-26 17-03-48](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-03-48.jpg)

根据提示,完成pojo的建立

![2016-07-26 17-04-49](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-04-49.jpg)

Step2.2:数据文件建立

运行DataPrepareUtil工具。

![2016-07-26 17-05-38](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-05-38.jpg)

根据提示,从Oracle取数生成数据文件。

其中,suffix为文件名后缀,用于防止文件互相冲突,建议与代码编号一致。

![2016-07-26 17-06-30](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-06-30.jpg)

文件保存在如下路径中

![2016-07-26 17-09-45](http://o6jujlzry.bkt.clouddn.com/2016-09-03-2016-07-26 17-09-45.jpg)

Step2.3:执行数据准备

在prepareData方法中,调用API,执行数据准备。

    @Override
public void prepareData(ComputeBatchNode cbn, JavaSparkContext sc, Hashtable params, ComputeResult result) {
//Dateframe:qtsl_temp
mockSparkTempTable("QTSL_TEMP", "_600", cbn); //Dataframe:par_fund_partner
mockSparkTempTable("PAR_FUND_PARTNER", "_600", cbn); //Oracle表:out_trd_qtsl_his
mockMybatisTempTable("splitSqlMapper.getQtslHis", "OUT_TRD_QTSL_HIS_600"); //RDD:qtsl_temp
mockSparkRDD("QTSL_TEMP", "_600", cbn, QtslTempPojo.class); //RDD:par_fund_fill_partner
mockSparkRDD("PAR_SYS_FILL_PARTNER", "_600", cbn, ParSysFillPartnerPojo.class); doPrepareData(cbn, params);
}

Step3:输出数据准备

Spark菜鸟学习营Day4 单元测试程序的编写的更多相关文章

  1. Spark菜鸟学习营Day6 分布式代码运行调试

    Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...

  2. Spark菜鸟学习营Day5 分布式程序开发

    Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...

  3. Spark菜鸟学习营Day3 RDD编程进阶

    Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...

  4. Spark菜鸟学习营Day2 分布式系统需求分析

    Spark菜鸟学习营Day2 分布式系统需求分析 本分析主要针对从原有代码向Spark的迁移.要注意的是Spark和传统开发有着截然不同的思考思路,所以我们需要首先对原有代码进行需求分析,形成改造思路 ...

  5. Spark菜鸟学习营Day1 从Java到RDD编程

    Spark菜鸟学习营Day1 从Java到RDD编程 菜鸟训练营主要的目标是帮助大家从零开始,初步掌握Spark程序的开发. Spark的编程模型是一步一步发展过来的,今天主要带大家走一下这段路,让我 ...

  6. 【菜鸟学习jquery源码】数据缓存与data()

    前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...

  7. 菜鸟学习Andriod-弹窗

    菜鸟学习Andriod-弹窗 return new AlertDialog.Builder(ZyScreenSaver.this).setIcon( R.drawable.ic_launcher).s ...

  8. 菜鸟学习SSH——目录

    菜鸟学习Struts--配置Struts环境 菜鸟学习Struts--简易计算器 菜鸟学习Struts--bean标签库 菜鸟学习Struts--Scope属性 菜鸟学习Struts--国际化 菜鸟学 ...

  9. 菜鸟学习Spring——60s配置XML方法实现简单AOP

    一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...

随机推荐

  1. Linux chmod command

    @ chmod改变一个或多个文件的存取模式 chmod [options] mode files 只有文件属主或特殊用户才能使用该功能来改变文件存取模式.mode可以是数字形式或who opcode ...

  2. Umbraco(1) - Document Types(翻译文档)

    Document Types Data first nothing in = nothing out! 任何网站的第一步是创建一个"Document Type"-几次安装后你会熟悉 ...

  3. 上架第一个APP到苹果商店被拒绝5次

    - : Metadata Rejected (APP中的注册时跳转的 - 用户协议视图没有内容).Waiting For Review 6天  In Review 1天 第二次被拒绝 -- : Met ...

  4. Matlab之类型转换

    int转string:num2str(0); string转int:str2num('-1');

  5. Session,Cookie,jsessionid,Url重写

    在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...

  6. MongoDB - MongoDB CRUD Operations, Query Documents, Project Fields to Return from Query

    By default, queries in MongoDB return all fields in matching documents. To limit the amount of data ...

  7. UI设计之PS界面初始化设置

    一.PS界面初始化 1.新建设置  web设计的基础标准:宽度为1920px,高度自定义,分辨率72px,背景模式RGB 8位.(提示:可以“存为预设”以便以后直接调用) 注意:背景内容为透明!!! ...

  8. 根据ie浏览器不同的类别选择不同的css

    如果是IE浏览器则选择all-ie-only.css <!--[if IE]> <link rel="stylesheet" type="text/cs ...

  9. ssh-key 与 git账户配置以及多账户配置

    http://www.cnblogs.com/dubaokun/p/3550870.html 在使用git的时候,git与远程服务器是一般通过ssh传输的(也支持ftp,https),我们在管理远程分 ...

  10. 百度编辑器ueditor代码高亮效果前台不显示的解决方法

    原因是你没有在你的内容页加载相应的css文件,这要如何解决呢? 经测试,只要插入以下两个文件即可解决问题: <link href="你的ueditor路径/ueditor/third- ...