5

我想从三叶草报告中排除hashCode和。 一些配置示例会很好。equals

4

2 回答 2

3

我想从三叶草报告中排除 hashCode 和 equals。

我会恭敬地建议您实际测试这些方法,而不是避免它们。如果它们与规范不一致,可能会出现严重的错误。我也遇到过 NPE 和其他写得不好的问题hashCodeequals方法。这是一个很好的链接,您可以通过多种方式测试您的方法:

一个单元应该如何测试 hashCode-equals 合约?

我们使用以下LocalEqualsHashCodeTest可以通过单元测试扩展的内容:

http://pastebin.com/L03fHAjv

然后,您定义一个createInstance()返回类实例的方法和一个createNotEqualInstance()返回不等于第一个实例的另一个实例的方法。

于 2012-01-03T14:08:39.860 回答
1

你必须做两个步骤:

1) 在 <clover-setup> 任务中定义方法上下文,其中包含要匹配的方法的正则表达式,例如:

<clover-setup ...>
    <methodContext name="equals" regexp="public boolean equals\(.*\)"/>
    <methodContext name="hashCode" regexp="public int hashCode\(\)"/>
</clover-setup>

2) 在 <clover-report> 任务中定义应从报告中排除哪些方法上下文

<clover-report>
   <current outfile="clover_html" title="My Coverage">
     <format type="html" filter="equals,hashCode"/>
   </current>

更多信息:

于 2013-11-05T21:56:22.537 回答