专栏首页Jerry的SAP技术分享使用脚手架应用做单元测试

使用脚手架应用做单元测试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://jerry.blog.csdn.net/article/details/100666523

因为后台service比较复杂,需要三个不同的实例协同工作,所以之前Oliver开发了Scaffolding App这个Angular前端,目的是方便我们随时测试三实例协同是否仍然正常。

我想的是把这个Angular前端当成一个单元测试工具来用,每次我们改了后台之后,都把这个Angular UI打开跑一跑。

我看到你之前有个提交把client.write(data) 注释了,换成client.emit(data[0], data[1]);

我想你这个改动肯定是for昨天串QR code的scenario的,但是这样一改,之前的unit test就fail了。

你用emit(data[0], data[1])这种写法不太好:

这个函数通过回调方式被调用,你在函数体内作为被调用者,无法知道data的数据类型,而你直接硬编码成data[0], data[1]. 这就告诉了代码的阅读者: data是一个至少包含了两个元素的数组 data是一个至少包含了两个字符的字符串

当运行时data的数据类型不满足以上两个条件时,代码就会报异常,退出。 这里无论是client.write,还是client.emit, 我们都可以把它看成是广义的发布者模式,会有socket的另一端负责接收。 这种模式的最佳实践是,发布者不关心发布数据的格式,只是简单粗暴的把数据推送出去,具体不同的处理由接收方负责,比如接收方的伪代码可能是这样的:

If( typeof(data) === “String”)
     按照字符串处理
If( typeof(data) === “Array”)
     按照数据处理
If( typeof(data) === “Object”)
      按照对象处理

而你现在发送端的data[0], data[1], 从design上说相当于把这种处理从接收端移到发送端了。

为了不影响我们QR code scan的功能,我只是在你提交基础上简单加了一行注释,注明client.write(data)的必要性。

麻烦你有时间的时候,琢磨下如何改动现在的代码,使得单元测试和QR code scan的流程能同时工作,谢谢。这也能提高你编程的水平。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用脚手架应用做单元测试

    因为后台service比较复杂,需要三个不同的实例协同工作,所以之前Oliver开发了Scaffolding App这个Angular前端,目的是方便我们随时测...

    Jerry Wang
  • ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

    由此可见新语法比较简洁,能少写3行代码。但是这样有一个缺陷,在新语法下如果it_data内表内不存在object_ext的值为cl_crm_prodil_bo_...

    Jerry Wang
  • ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

    由此可见新语法比较简洁,能少写3行代码。但是这样有一个缺陷,在新语法下如果it_data内表内不存在object_ext的值为cl_crm_prodil_bo_...

    Jerry Wang
  • pandas的一些小知识

    生信编程日常
  • WordPress发布/更新文章、提交/审核评论自动清理VeryCloud缓存

    上一篇文章分享了WordPress 发布文章评论自动刷新腾讯云 CDN 的教程,而博客现在还用到了 VeryCloud 的 CDN,正好有朋友在文章后面留言说 ...

    张戈
  • 使用 Python 实现几种常见的排序算法

    冒泡排序是最为基础的排序算法,其核心思想就是相邻元素两两比较,把较大的元素放到后面,在一轮比较完成之后,最大的元素就位于最后一个位置了,就好像是气泡,慢慢的浮出...

    周萝卜
  • 讲讲切比雪夫定理

    前面讲了大数定理,讲了中心极限定理,有读者留言让讲讲切比雪夫定理,安排。这一篇就来讲讲切比雪夫定理。

    张俊红
  • 采用HTML5之"data-"机制自由提供数据

    周末总是过得很快,又到了跟代码亲密接触的日子,我在北京向各位问好,今天我分享一点关于前端的东西,HTML5之标签"data-*"自定义属性的值传递。     ...

    赵小忠
  • C++ string实现

    作为C++从业者,我相信都会被考察过实现简单的string类,包括构造、析构、拷贝构造以及赋值拷贝等,因为这能够很好的考察面试者的C++基本功。借看《剑指off...

    evenleo
  • 【学习】笨办法学R编程(三)

    看到各位对“笨办法系列”的东西还比较感兴趣,我也很乐意继续写下去。今天的示例将会用到数据框(data.frame)这种数据类型,并学习如何组合计算...

    小莹莹

扫码关注云+社区

领取腾讯云代金券