@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
}
}