gpt4 book ai didi

maven - 从 JUnit4 迁移到 JUnit5 会在 @Autowired 存储库上引发 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 10:19:35 26 4
gpt4 key购买 nike

我有一个非常简单的存储库测试,当我使用它时它运行得很好
JUnit 的 4“@RunWith(SpringRunner.Class)”。当我尝试在提供的示例中使用“@ExtendWith”时,在尝试使用存储库时会收到 NullPointerException。使用后一个注释时,“@Autowire”似乎没有注入(inject)存储库。这是 pom.xml 文件和堆栈跟踪:https://pastebin.com/4KSsgLfb

实体类:

package org.tim.entities;

import lombok.AccessLevel;
import lombok.Data;
import lombok.NonNull;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;

@Entity
@Data
public class ExampleEntity {

@Id
@Setter(AccessLevel.NONE)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotNull
@NonNull
private String name;

}

存储库类:
package org.tim.repositories;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.tim.entities.ExampleEntity;

@Repository
public interface ExampleRepository extends JpaRepository<ExampleEntity, Long> {
}

测试类:
package org.tim;

import org.junit.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.tim.entities.ExampleEntity;
import org.tim.repositories.ExampleRepository;


@ExtendWith(SpringExtension.class)
@DataJpaTest
public class exampleTestClass {

@Autowired
private ExampleRepository exampleRepository;

@Test
public void exampleTest() {
exampleRepository.save(new ExampleEntity("name"));
}
}

最佳答案

你用错了@Test注解。

使用 SpringExtension 时和 JUnit Jupiter (JUnit 5),您必须使用 import org.junit.jupiter.api.Test;而不是 import org.junit.Test; .

关于maven - 从 JUnit4 迁移到 JUnit5 会在 @Autowired 存储库上引发 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com