首页 > 解决方案 > 为什么字段没有在第二种方法中更新?

问题描述

我在下面创建了一个用于测试 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;
        }
    }
}

}

我不明白为什么方法中的字段flagcaseTwo正确?如何解决?

标签: javaapache-sparkwebservertestng

解决方案


为什么字段没有在第二种方法中更新?

它应该更新到什么?为什么?你编码的任何东西都不起作用?

每次@Test方法被测试运行程序调用时,都会实例化一个不同的封闭夹具(TestExample在您的情况下)的新实例。

您已经硬编码内联,初始化您的flag成员,并且每个新实例都将其初始化为false.


推荐阅读