当前位置: 首页 > 工具软件 > moq > 使用案例 >

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

何星鹏
2023-12-01

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

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

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

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

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

 类似资料: