正文内容加载中...
posted @ 2020-10-19 17:43 纪玉奇 阅读(119) 评论(0) 推荐(0) 编辑
摘要:在编写业务代码前,先考虑如何编写测试,再编写业务代码,这种开发方式称作:TDD test-driven development。 使用TDD的主要优点 就通常的单元测试而言,最为明显优点就增强了我们对代码按照设计运行的信心。 而TDD,由于是在编写业务代码提前设计,可以说,这些单元测试就反映了业务需 阅读全文
posted @ 2020-10-19 17:41 纪玉奇 阅读(89) 评论(0) 推荐(0) 编辑
摘要:进行重构以使得代码更为清晰 单元测试可以有效的支持重构,在单元测试保障下,可能的错误会因单元测试的存在而被及时识别。 重构的范围比较大,这里仅说明方法级别的重构。 方法级别的重构的原则是将复杂的,能够隔离的逻辑单独提取,给与明确的方法命名,保证方法内的逻辑简洁,以调高代码的易读性和易测试性。 在进行 阅读全文
posted @ 2020-10-19 17:38 纪玉奇 阅读(62) 评论(0) 推荐(0) 编辑
摘要:很多情况下,代码需要与外部依赖打交道,如一个REST地址,数据库链接、外部IO等;这些依赖有些速度过慢、有些不够稳定,不符合单元测试要求的快速、可重复等原则性要求,因此引入了Mock对象这一概念。与Mock相关的还有Stub这个单词。 stub 桩,它针对指定的输入缓存了行为 mock 模拟对象,增 阅读全文
posted @ 2020-10-19 17:36 纪玉奇 阅读(251) 评论(0) 推荐(0) 编辑
摘要:编写单元测试的用例是验证代码的正确性,很多情况下,我们倾向于让测试沿着主路径,也就是”happy path"前进,仅能验证代码的功能,却无法保证代码的健壮,因此本文就将解决单元测试测试什么这个问题。 在《Pragmatic Unit Testing in Java 8 with JUNIT》这本书中 阅读全文
posted @ 2020-10-19 17:34 纪玉奇 阅读(68) 评论(0) 推荐(0) 编辑
摘要:单元测试常见问题 单元测试对接手人没有意义 测试会间断性的失败 ”测试“并没有实际意义 测试需要过长的时间执行 测试没有有效覆盖代码 测试与实现耦合太紧密,意味着一点点调整将会导致大量测试失败 测试太复杂,需要预制太多条件 好的单元测试所要遵循的几个原则 [F]AST 快速性 [I]solate 隔 阅读全文
posted @ 2020-10-19 17:31 纪玉奇 阅读(252) 评论(0) 推荐(0) 编辑
摘要:主要对单元测试相关的一些方法论进行了说明,单元测试本身不难,难的是如何使团队认识、认可和执行单元测试,并产生正常的效果。 阅读全文
posted @ 2020-10-19 17:30 纪玉奇 阅读(166) 评论(0) 推荐(0) 编辑
摘要:MonitoredItem 每个监控项均指明了要监控的项目(item)和用来发送通知的订阅。 item可以是一个节点的属性(node attribute)。 MonitorItem可以监控一个属性,一个变量或者一个事件 可以通过MonitorItem定义的过滤器(fiter),来决定是否产生一个通知 阅读全文
posted @ 2018-09-13 10:30 纪玉奇 阅读(8513) 评论(0) 推荐(0) 编辑
摘要:适用场景 当系统需要应用高并发的冲击时,一个最常用的策略是使用缓存提高系统容量,这通常是效果最好的方式,但如论如何提升系统容量,都会存在一个QPS/TPS的阈值,超过该阈值则认为系统不再稳定,因此需要采取措施屏蔽掉这些请求,达到系统稳定可用的目的。 实现这一目标的常见策略为限流: 限流,顾名思义就是 阅读全文
posted @ 2018-05-31 17:46 纪玉奇 阅读(468) 评论(0) 推荐(0) 编辑
摘要:在计算机科学与信息科学领域,理论上,本体是指一种“形式化的,对于共享概念体系的明确而又详细的说明”[1]。本体提供的是一种共享词表,也就是特定领域之中那些存在着的对象类型或概念及其属性和相互关系[2];或者说,本体就是一种特殊类型的术语集,具有结构化的特点,且更加适合于在计算机系统之中使用;或者说,本体实际上就是对特定领域之中某套概念及其相互之间关系的形式化表达(formal representation)。本体是人们以自己兴趣领域的知识为素材,运用信息科学的本体论原理而编写出来的作品。本体一般可以用来针对该领域的属性进行推理,亦可用于定义该领域(也就是对该领域进行建模)。此外,有时人们也会将“本体”称为“本体论”。 阅读全文
posted @ 2018-02-26 16:00 纪玉奇 阅读(1230) 评论(0) 推荐(0) 编辑