[英]Unit testing the creation of an entry in the database
我想為服務編寫一個簡單的單元測試。 這是我要統一測試的服務中的方法。
@Log4j
@Service
public class Service {
@Autowired
private Repository repository;
public JpaRecord create(JpaRecord jpaRecord) {
return repository.save(jpaRecord);
}
}
此方法只是在數據庫中創建一個新條目。
這是 JpaRecord:
@Data
@Entity
@Table(name = "TEST", schema = "TEST")
public class JpaRecord implements Serializable {
private static final long serialVersionUID = 1L;
JpaRecord() {
// default constructor
}
public JpaRecord(
String name,
Date createdAt,
Blob file
) {
this.name = name;
this.createdAt = createdAt;
this.file = file;
}
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "TEST_SEQx")
@SequenceGenerator(
sequenceName = "TEST_SEQ", allocationSize = 1,
name = "TEST_SEQx")
private Long id;
@Column(name = "NAME")
private String name;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_AT")
private Date createdAt;
@Lob
@Column(name = "FILE")
private Blob file;
}
id不應該是 null,所有其他條目都可以是 null。我寫這個測試是為了檢查數據庫條目是否不是 null,這意味着它已創建。
public class ServiceTest {
@Autowired
private Service Service;
@Autowired
private JpaRecord JpaRecord;
@Before
public void setUp(){
}
@Test
public void testCreateWhenNull(){
// prepare data
JpaRecord = new JpaRecord("testProject", new Date(),null);
// run
// test with assert
Assert.assertNotNull(Service.create(JpaRecord));
}
}
然后我得到一個 java.lang.NullPointerException。 我真的很感激任何關於我應該如何處理問題以對其進行單元測試的建議。 這是我第一次進行單元測試,我想從一個簡單的 null 檢查開始。
您缺少一些配置相關的 spring 啟動 JUnit 在 class 級別進行測試,這就是您獲得 Nullpointer Exception 的原因。請閱讀以下鏈接參考鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.