spring - 使用 JPA 保存数据的 Junit 测试
问题描述
我正在尝试进行 junit 测试以使用 JPA 保存数据。下面是我的实体类
@Entity
@Table(name="book")
public class test {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="BOOK_REF_ID",nullable=false)
private int bookRefId;
@Column(name="BOOK_CODE",nullable=false)
private String bookCode;
@Column(name="BOOK_NAME",nullable=false)
private String bookDescription;
public int getBookRefId() {
return bookRefId;
}
public void setBookRefId(int bookRefId) {
this.bookRefId = bookRefId;
}
public String getBookCode() {
return bookCode;
}
public void setBookCode(String bookCode) {
this.bookCode = bookCode;
}
public String getBookDescription() {
return bookDescription;
}
public void setBookDescription(String bookDescription) {
this.bookDescription = bookDescription;
}
}
服务等级是
public interface BookService()
{
public Book create(Book book);
}
存储库类是
public interface BookRepository extends
JpaRepository<Book,Integer>
{ }
服务实现类是
public BookServiceImpli implements BookService()
{
@Resource
BookRepository repository;
@Override
public Book create(Book book) {
// TODO Auto-generated method stub
return repository.save(book);
}
}
现在我的测试课是
@RunWith(SpringRunner.class)
@DataJpaTest
@SpringBootTest(classes= {JPAConfig.class})
@AutoConfigureTestDatabase(replace=Replace.NONE)
@TestPropertySource(
locations = "classpath:application.properties")
public class TestBook {
@Autowired
private BookService bookService ;
@Test
public void test() {
Book book = new Book();
book.setBookCode("abc");
book.setBookDescription("safd");
bookService.create(book);
}
应用程序属性包含密码和数据库详细信息,而 JPAConfig 包含 JPA 配置详细信息,例如实体扫描数据库详细信息。当我试图运行测试用例时,我得到了一个错误,比如
A component required a bean of type
'com.repository.sample.BookRepository' that could not be found.
我没有主要方法。我是单元测试的新手,请任何人帮助我解决问题。
解决方案
推荐阅读
- c# - 如何使用 C# selenium 单击下拉选项
- sql - 当连接字段之一在 oracle 中是多对 1 时,如何在连接 3 个表时根据最大日期获得准确的计数?
- swiftui - 垂直布局文本,使文本方向垂直
- asp.net-mvc - 使用 OWIN 对照本地 Web 应用程序用户检查 OpenID Connect 用户
- html - 如何设置全日历 headerToolBar 的样式
- javascript - 未经检查的 runtime.lastError:无法创建具有重复 ID 的项目 - 我的 ID 来自 Firebase
- python - 从原始数据帧中获取多个数据帧
- sql - 确定日期间隔
- metrics - Datadog:METRIC.as_rate() 与 per_second(METRIC)
- visual-studio-code - 在 vscode 中的每个命令上都出现错误“找不到命令”