我的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
}
}
答案 0 :(得分:0)
好的,问题在于我使用Lombok构建器的方式。 出于某种原因,当我从Lombok构建器创建新的User对象时,IntelliJ没有显示任何错误。 问题在于行:
new User.UserBuilder()
应该是
User.builder()