如何测试方法计算出正确的结果?

edw*_*yte 2 java testing

这听起来比我的意思更模糊,但是在类中测试方法时正确的过程是什么。

例如,客户类将设置密码的 md5 哈希值保存到数据库,而不是实际密码。客户类中的私有方法计算出要保存的 md5 哈希值。

public class Customer() {

public void setPassword(String password){
  this.password = hashPassword(password);
}

private String hashPassword(String password){
  ..do stuff..
}

.. other methods ..

}
Run Code Online (Sandbox Code Playgroud)

现在这只是一个例子,我不想知道如何计算 md5 哈希值等。这是关于测试的。这是我能想到的选择:

  • 我在测试类中创建一个与 hashPassword 执行相同操作的方法,然后比较结果。
  • 我手动计算特定密码 (myPassword) 的结果并将其存储为常量。在测试中将密码设置为 myPassword 后,我会将常量与结果进行比较。

das*_*ght 5

您应该采取第二个选项,即预先计算一个值或一系列值,并用它们进行测试。使用相同方法的副本来测试方法除了增加代码重复量之外没有其他任何目的。