gpt4 book ai didi

java - setUp 未初始化字段

转载 作者:行者123 更新时间:2023-11-29 04:20:47 29 4
gpt4 key购买 nike

我尝试使用以下方法为每个类初始化一次设置数据。

static boolean tradeDataLoaded = false;
static FeedRecords feedrecords = null;
@Before
public void setUp() throws Exception {
if(!tradeDataLoaded){
........
feedrecords= .......
}
}

此解决方法是由于 @BeforeClass 是静态的 - 因此无法满足我从文件初始化数据的目的。
但是,我注意到除非 feedrecords 标记为静态 - 它在执行的某个时刻被重置为 null。
它在尝试用于后续测试时给出了 NPE。
初始化数据丢失的方式和原因 - 测试类是否在执行测试时被多次加载?

最佳答案

JUnit 运行程序可以在每个 @Test 实例化一个测试类,尽管这不是必需的,这就是您的情况。旧实例及其初始化被丢弃,为另一个 @Test 创建的新实例不执行初始化,因为静态 tradeDataLoadedtrue

如果你只想初始化一些数据一次,你应该避免这样的变通方法,只使用@BeforeClass注解:

static FeedRecords feedrecords = null;

@BeforeClass
public static void setUpClass() throws Exception {
feedrecords = .......
}

关于java - setUp 未初始化字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49294902/

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