如何在java中为hashcode()方法编写pitest(mutation test)

问题描述

我正在为 hashcode 方法编写变异测试。下面是我的一段代码

@Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = (prime * result)+ privateVariable.hashcode();   
  result = (prime * result)+ ((this.details == null) ? 0 : this.details.hashCode());
  result = (prime * result)+ ((this.status == null) ? 0 : this.status.hashCode());
  return result;
 }

有谁知道我如何为这段代码编写变异测试?

解决方法

除非您对哈希码的执行方式有非常具体的要求,否则 EqualsVerifier 通常足以确保其行为合理(与 equals 实现相结合)。

但是请注意,您不会为代码“编写变异测试”,而是用 pitest(和其他变异测试工具)验证现有单元测试的有效性。