带Spock集成测试的Spring Boot 2 - 应用程序上下文未在测试时启动

时间:2018-03-18 11:04:38

标签: java spring-boot spock

我的spock测试有一个奇怪的问题,在测试中运行时弹簧上下文没有启动。我在这里抛出所有问题,检查所需的依赖关系,并在调用自动​​连接的依赖项时仍然获得NPE。

我的设置:Spring Boot 2.0.0,Spock 1.1,Groovy 2.4.14。

compile 'org.codehaus.groovy:groovy-all:2.4.14'
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4'
testCompile 'org.spockframework:spock-spring:1.1-groovy-2.4'

我的测试:

@SpringBootTest(classes = RecruitApplication.class) 
class QuestionnaireServiceSpec extends Specification {

@Autowired
private UserRepo userRepo

@Autowired
private QuestionnaireRepo repo

@Autowired
private QuestionnaireService sut

private static User newUser = new User.UserBuilder()
        .firstName("Candidate")
        .lastName("A")
        .status(User.Status.ACTIVE)
        .email("canA@new.pl")
        .build()

void "should create new questionnaire for candidate A"() {
    given:
    userRepo.save(newUser)
    String userId = userRepo.findByEmail(newUser.email).id
    assert userId

    when:
    sut.createQuestionnaireForUser(userId)

    then:
    repo.count() > 0
}
}

1 个答案:

答案 0 :(得分:0)

好的,问题在于我使用Lombok构建器的方式。 出于某种原因,当我从Lombok构建器创建新的User对象时,IntelliJ没有显示任何错误。 问题在于行:

 new User.UserBuilder()

应该是

 User.builder()