我正在使用 Quarkus 框架开发一个项目,并且我已经使用 Quarkus Panache 作为我的数据持久层实现了一些实体。现在,我正在尝试编写单元测试来确保数据操作的完整性,特别关注测试实体之间的关系以及删除单个实体时的级联行为。
这是实体结构的简化示例:
@Entity
public class Author extends PanacheEntity {
@Column(unique = true, nullable = false)
public String name;
// ...
}
@Entity
public class Book extends PanacheEntity {
public String title;
@OneToMany(
cascade = CascadeType.PERSIST,
orphanRemoval = true)
public Author author;
// ...
}
我找到了数十个有关如何测试端点和服务的示例,并且我知道这是常规的测试方法。然而,我经常遇到与实体关系相关的错误,并希望找到一种有效测试我的数据结构的方法。
您无法对实体进行单元测试,您需要 IT 测试:
@QuarkusTest
class EntityTest
@Test
@TestTransaction
void crud(){
var author=new Author();
author.persist();
// etc.
var authors= Author.list();
}
另请参阅: https://quarkus.io/guides/getting-started-testing#tests-and-transactions