Junit - 带有 @Before 的空指针异常

Sen*_*Vak 2 junit nullpointerexception

我刚刚开始学习 Junit,在第一次测试中遇到了空指针异常。

如果我正确阅读@Before注释意味着它将在每次测试之前被调用,但看起来它没有或者此代码有其他问题。在下面的代码中,我得到了空指针myList.add()

import org.junit.Before;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.*;

public class StudentTest {
    private List<String> myList;

    @Before
    public void init(){
        myList = new ArrayList<>();
    }
    @Test
    public void size(){
        myList.add("TEST");
        assertEquals(1, myList.size());
    }
}
Run Code Online (Sandbox Code Playgroud)

Ger*_*cke 5

导入 (jupiter) 表明您正在使用 Junit5。在 JUnit5 中,您必须使用@BeforeEach注释来指示每个测试方法之前必须执行的步骤。

@Before注释在 JUnit4 中使用。

我还没有对此进行测试,只需阅读文档https://junit.org/junit5/docs/current/user-guide/