gpt4 book ai didi

java - 在测试类中使用可访问的私有(private)字段运行测试

转载 作者:行者123 更新时间:2023-12-01 10:28:32 25 4
gpt4 key购买 nike

我有一些带有常量的类要测试:

public class SomeClass {
private static final String SOME_CONST = "blabla";

我必须在测试中使用它,所以我(使用 Spring ReflectionUtils 和 java.lang 原生库)制作如下:

findField(SomeClass.class, "SOME_CONST").setAccessible(true);

makeAccessible(findField(SomeClass.class, "SOME_CONST"));

运行测试

@Test
public void someTest() throws Exception {
String s = SomeClass.SOME_CONST;

我看到我的 Intellij Idea 停止运行,并出现与尝试访问私有(private)字段相关的错误。假设我应该使用某种@SuppressWarnings或者如何更好地解决这样的问题?

最佳答案

测试私有(private)方法/字段通常是糟糕设计的标志。如果您不介意展示它,请将其设置为 public 或放置一个 getter 来检索该变量,因为它是最终的,所以您不应该遇到任何麻烦,除非它具有敏感数据或它是一个可变类(不是 String 的情况) 。或者使用您的方法,执行

Field field = TargetClass.getDeclaredField(fieldName);
field.setAccessible(true);
String someConst = (String) field.get(new SomeClass());

正在关注this hint

关于java - 在测试类中使用可访问的私有(private)字段运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35220417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com