0

我有以下代码。

public  class Table {

    Integer[] data;

    public Table() {
        this.data = new Integer[100];
    }

    public boolean insert(int key){
        data[53] = 1;
         return true;
    }
 }

&& 

public class test{

private Table tab;

protected void setUp() throws Exception {
        tab = new Table();
    }

public void testInsertTable() {
        tab.insert(1);
        assertTrue(tab.data[53] == 1);  // error here
    }
}

测试类使用 JUnit 运行。该代码在我在 Eclipse 中运行时有效,但是当我在 Eclipse 之外运行它时,在注释指向的行上出现 NoSuchField 错误。

负责该问题的类是 Table,我肯定知道这一点。

4

1 回答 1

1

可能有问题的是您没有@Before在设置方法上使用注释

正确的代码应该是

public class test{

private Table tab;

@Before
 protected void setUp() throws Exception {
       tab = new Table();
  }

@Test
public void testInsertTable() {
        tab.insert(1);
        assertTrue(tab.data[53] == 1);  // error here
 }
 } 
于 2019-12-03T18:44:26.373 回答