Я хотел написать простой модульный тест для службы. Это метод в моем сервисе, который я хочу использовать.
@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 не должен быть нулевым, все остальные записи могут быть нулевыми. Я написал этот тест, чтобы проверить, не является ли запись БД ненулевой, что означает, что она создана.
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! Я был бы очень признателен за любые предложения о том, как мне подойти к проблеме, чтобы выполнить ее модульное тестирование. Это мой первый тестовый модуль, и я хотел начать с простой нулевой проверки.