由于某种原因,我的测试类的setUp()方法没有在我的测试方法之前被调用。
import static org.junit.jupiter.api.Assertions.*;
import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.Test;
class BlockchainAuctionTest {
private BlockchainAuction auction;
@Before
public void setUp() {
auction = new BlockchainAuction();
System.out.println("setUp");
}
@After
public void tearDown() {
System.out.println("tearDown");
}
@Test
void testOneBid() {
Bid bid = new Bid("Bitcoin", "Devon", 1.0);
assertTrue(auction.recordNewBid(bid), "first bid should be added without error");
}
}
具体地说,我在显示
的行上收到了空指针异常 assertTrue(auction.recordNewBid(bid), "first bid should be added without error");
因为拍卖尚未初始化。我正在使用Eclipse。
答案 0 :(得分:3)
您使用的是JUnit 5 @Test
,但使用的是JUnit 4 @Before
/ @After
。
您需要使用@BeforeEach
中的@AfterEach
/ org.junit.jupiter
。
答案 1 :(得分:1)
从外观上,您可以尝试从
更改导入import org.junit.jupiter.api.Test;
到
import org.junit.Test;
答案 2 :(得分:0)
好吧,对我来说,这就是它的工作方式。
我用过:
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach;
它奏效了。我也用过
import org.junit.Before;
import org.junit.Test;
它也起作用。其他任何组合都不适合我。