JAVA接口的单元测试类_使用MOQ对没有接口的类进行单元测试

Microsoft很久以前就弃用了私有访问器 . 私有访问器生成器存在缺陷,如果您使用了一些访问器生成器未正确支持的语言结构,可能会导致Visual Studio崩溃或拒绝构建 .

首先,测试私有方法也是一个糟糕的主意 . 你想从外面测试一个类,这样你在课堂上抛出的任何东西都会使它产生预期的结果 . 该类如何执行您希望它执行的操作是实现细节 . 如果您开始为私有方法编写单元测试,那么您正在创建一个依赖项,这可能会使更改实现细节变得更加困难 . 这违背了私有方法的目的之一,即只要外部行为不变,允许类随意改变内部 .

我的建议是避免私有测试,而是重构你的类,使公共方法更可测试 . 通常,这涉及一个练习,您可以使用怪物方法将怪物类拆分为具有简单接口的简单类的细粒度类设计 .

关于这个主题有一本很棒的书:Michael Feathers的“有效地使用遗留代码” . 他将遗留代码定义为未完全覆盖测试的代码,我认为这些代码与您的代码相匹配,并描述了许多使代码更易于测试的具体技术 .

如果您的类依赖是通过接口或抽象类,Moq是一个有意义的测试工具 . 这里moq可以用来测试你的类是否以预期的方式与某个接口交互 . 使用moq而不是具体实现的好处是,您可以将测试集中在一个类上,并消除依赖类中的意外副作用,并在许多情况下简化测试设置 . 这意味着Moq非常适合测试类如何与其他类交互,这通常是最有趣的测试 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值