@Before
public void setUp() {
    Airport airport = new Airport();
}
@Test
public void has_storage(){
    ArrayList<String> airport_storage;
    airport_storage = new ArrayList<String>();
    airport_storage.add("plane");
    ArrayList<String> actual_storage = airport.storage();


我正在尝试使用AirportTest类来测试我的机场课程。与RSpec / Jasmine和其他一些我使用过的测试框架类似,我想确保每次测试都得到一个新的对象实例。尽管我已经读到实例变量无论如何在JUnit中都不会持久存在于测试中,所以这可能不是必需的。为什么会出现编译器无法解析符号机场的错误?如何正确声明和初始化Airport实例,使其在每个@Test的范围内?

谢谢

最佳答案

airport变量仅在setUp块内是已知的。如错误所述,它不知道您在说什么变量。

要解决此问题,您需要在类级别上声明airport作为成员变量:

public class MyTest{
     private Airport airport; // declare as a private class member

     @Before
     public void setUp() {
         airport = new Airport(); // instantiate it before every test
     }

     @Test
     public void has_storage(){
         ArrayList<String> airport_storage;
         airport_storage = new ArrayList<String>();
         airport_storage.add("plane");
         ArrayList<String> actual_storage = airport.storage(); // use it without problems
     }
}

10-04 21:49