【问题标题】:Junit at private methods私有方法中的 Junit
【发布时间】:2020-07-29 11:35:42
【问题描述】:

我正在对一个类进行 JUnit 测试,我需要在类中添加两个方法来读取对象的加密密码+盐。我只想为此使用它们,我可以以某种方式将它们设为私有,但仍然在测试中调用它们吗? 例如:

private String getPassForTest(){
return this.encryptedPass
}

然后在我的测试中我想访问它

User tester = new User();
PreparedStatement actual = "INSERT INTO `users` ( `Password`) VALUES ('"tester.getEncryptedForTest() +"')";

【问题讨论】:

  • 不要直接(单元)测试私有方法。通过测试使用它们的(非私有)方法来测试它们。如果没有这样的,那么你可以删除私有方法。

标签: java junit private


【解决方案1】:

如果您的测试类在测试的“镜像包”中,您可以使用受保护或包范围,而不是将方法声明为私有。

这是一种常见的做法,特别是当您使用“仅对测试可见”来表示/注释该方法时。

【讨论】:

  • 这是个坏建议,私有方法是私有的,因为它们不能在其他地方使用。使它们受到保护使它们对同一包中的所有子类和所有类开放。这可能会改变交易。
猜你喜欢
  • 2020-05-29
  • 2018-06-07
  • 2014-06-05
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2019-01-09
  • 2017-01-16
相关资源
最近更新 更多