加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

为测试,保护独立性用stub来打破对象之间的依赖关系

发布时间:2020-05-23 04:30:26 所属栏目:程序设计 来源:互联网
导读:现在来看The Art of Unit Testing With Examples in .NET的第三章“Using Stubs to Break Dependencies” 作者使用了三种定义来指向测试中的伪造关系:fakes, stubs 和 mocks。 “除了间接层次过多这样的问题之外,没有哪种面向对象的问题是不能通过添加间接

现在来看The Art of Unit Testing With Examples in .NET的第三章“Using Stubs to Break Dependencies”

  • 作者使用了三种定义来指向测试中的伪造关系:fakes,stubs 和 mocks。
  • “除了间接层次过多这样的问题之外,没有哪种面向对象的问题是不能通过添加间接层次解决的。”然而,单元测试的诸多精妙之处就在于:如何找到正确的地方添加或使用间接层次,以测试目标代码。
  • 加入间接层次的三个步骤:
    1. 找到待测试方法依赖的“接口”。这里的接口不单单是指面向对象中的接口,还包括与其他类协作需要调用的方法或类。
    2. 如果“接口”与待测方法有“直接关系”(比如直接调用等等),就可以通过向接口加入间接层次,使得待测方法可以被测试。
    3. 将交互接口的“潜在实现”用可以控制的东西替换。
  • 对于Seam(接缝)的定义:

Seams are places in your code where you can plug in different functionality,such as stub classes. (可参考Michael Feathers的《修改代码的艺术》)

  • 打破依赖的5种方法:
    1. 抽离出接口,以替换潜在实现。
    2. 向待测类中注入stub实现。
    3. 在构造器中接收接口作为函数。
    4. 将接口作为属性,进行设置或读取。
    5. 在调用方法前得到stub。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读