java - 为什么字段没有在第二种方法中更新?
问题描述
我在下面创建了一个用于测试 spark 框架的简单代码。
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import static spark.Spark.post;
public class TestExample {
private boolean flag = false;
@BeforeClass
private void caseOne(){
post("/cres/", (req, res) -> {
flag = true;
return res.body();});
}
@Test
private void caseTwo(){
while (true){
if(flag == true){
System.out.println("Finished!");
break;
}
}
}
}
我不明白为什么方法中的字段flag
不caseTwo
正确?如何解决?
解决方案
为什么字段没有在第二种方法中更新?
它应该更新到什么?为什么?你编码的任何东西都不起作用?
每次@Test
方法被测试运行程序调用时,都会实例化一个不同的封闭夹具(TestExample
在您的情况下)的新实例。
您已经硬编码内联,初始化您的flag
成员,并且每个新实例都将其初始化为false
.
推荐阅读
- c++ - 为什么当 B::f 被 B 的临时对象调用时选择 void B::f() const &?
- regex - Scala RegexParser 用于方法调用解析
- ajax - axios with react如何操作AJAX
- android-studio - 请帮助我,当我打开它时,我的应用程序一直崩溃
- swift - 使用pickerView将无法识别的选择器发送到实例
- javascript - 是否可以将 csv 数据加载到 Highstock 图表?
- crystal-reports - 如何将 XML 数据源字段的所有值提取到数组中
- php - PHP - foreach 增量超过 1
- java - 为所有用户 Firebase 更新 UI
- scala - 在 Scala 中使用 Twitter Futures 进行异步日志记录