Модульное тестирование создания записи в базе данных - PullRequest
0 голосов
/ 12 февраля 2020

Я хотел написать простой модульный тест для службы. Это метод в моем сервисе, который я хочу использовать.

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

1 Ответ

1 голос
/ 12 февраля 2020

вам не хватает некоторой конфигурации, связанной с тестированием JUnit с пружинной загрузкой на уровне класса, поэтому вы получаете исключение Nullpointer. Пожалуйста, прочитайте следующую ссылку справочная ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...