NullPointerException не может вызвать метод нулевого объекта - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь написать простой тест, который будет проверять все мои грубые операции, используя service, проблема в том, что я не знаю, почему я получаю эту ошибку, и я не могу даже запустить ни одного теста.

@SpringBootTest
class EpisodeServiceTest extends Specification {

    @Autowired
    private EpisodeService episodeService

    def "should create episode and save in in the database"() {
        when:
        Episode episode = new Episode("title", "description")

        and:
        episodeService.addEpisode(episode)

        then:
        episode == episodeService.findById(episode.id)
    }
}
@Service
@Transactional
public class EpisodeService {

    private EpisodeRepository episodeRepository;

    @Autowired
    public EpisodeService(EpisodeRepository episodeRepository) {
        this.episodeRepository = episodeRepository;
    }

    public Episode findById(long id) {
        return episodeRepository.findById(id).orElse(null);
    }

    public List<Episode> findAll() {
        return episodeRepository.findAll();
    }

    public void addEpisode(Episode episode) {
        if (episode != null)
            episodeRepository.save(episode);
    }

    public void deleteEpisodeById(long id) {
        Episode episode = findById(id);
        if (episode != null)
            episodeRepository.delete(episode);
    }
}

Хранилище - это просто простое хранилище, которое расширяет JpaRepository, и мой вопрос в том, как использовать спок для тестирования сущностей jpa? Что я делаю неправильно, потому что я пытаюсь сделать это впервые, раньше я писал простые тесты в JUnit, но я хотел попробовать спок.

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

В вашем тестовом классе отсутствует аннотация @RunWith(SpringRunner.class)

@SpringBootTest
@RunWith(SpringRunner.class)
class EpisodeServiceTest extends Specification {
0 голосов
/ 10 июня 2019

Решением для этого было добавить эту зависимость в maven

        <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-spring</artifactId>
            <version>1.3-groovy-2.5</version>
            <scope>test</scope>
        </dependency>

Недостаточно было добавить только spock-core.

...