Java 软删除上的JUnit测试

Java 软删除上的JUnit测试,java,spring,junit,Java,Spring,Junit,我正在为用Spring boot编写的RestFul API编写JUnit 该API有一个名为“软删除”的功能,该功能具有一个名为“活动”的数据库列,如果用户删除该对象,则“活动”设置为0,以指示该对象已被删除 下面是我的Junit测试代码,用于软删除。令我惊讶的是,Junit结果显示,即使在我删除对象之后,活动的值始终为1 这是删除代码。如您所见,它只是更新“活动”并将其设置为false @RepositoryRestResource(collectionResourceRel = "man

我正在为用Spring boot编写的RestFul API编写JUnit

该API有一个名为“软删除”的功能,该功能具有一个名为“活动”的数据库列,如果用户删除该对象,则“活动”设置为0,以指示该对象已被删除

下面是我的Junit测试代码,用于软删除。令我惊讶的是,Junit结果显示,即使在我删除对象之后,活动的值始终为1

这是删除代码。如您所见,它只是更新“活动”并将其设置为false

@RepositoryRestResource(collectionResourceRel = "manufacturers", path = "manufacturers")
public interface ManufacturerRepository extends CrudRepository<Manufacturer, String> {

   @Modifying
   @Query("update Manufacturer m set m.active=false where m.id=:   {#m.getManufacturerId()}")
   void delete(@Param("m") Manufacturer m);

}
@RepositoryRestResource(collectionResourceRel=“manufacturers”,path=“manufacturers”)
公共接口制造商存储扩展CRUDREPOSITION{
@修改
@查询(“更新制造商m set m.active=false,其中m.id=:{#m.getManufacturerId()}”)
无效删除(@Param(“m”)制造商m);
}
因为我可以在数据库表中看到active设置为0,所以我确信我的测试代码是错误的。你知道为什么会这样吗

# 谢谢你的建议。我已经更新了代码,以便从数据库中获取新的副本。现在激活的是false,我的代码现在通过了测试


在数据库中“删除”制造商后,似乎没有找到制造商


除非您在repository.delete(Manufacturer)中更新制造商,否则您必须调用getter从数据库中获取对象的更新版本。

在数据库中“删除”制造商后,您似乎无法获取该制造商


除非在repository.delete(Manufacturer)中更新制造商,否则必须调用getter从数据库中获取对象的更新版本。

单元测试可能无论如何都不应该与db交互-这不是单元测试,这是一个集成测试存储库的
删除方法是什么?您能给出一些代码吗?单元测试可能无论如何都不应该与db交互-这不是单元测试,而是集成测试存储库的
delete
方法是什么?你能给我一些代码吗?谢谢,我在测试旧对象。在使用getter获取更新版本后,我的测试代码显示活动版本现在为false。谢谢,我是在旧对象上测试的。在使用getter获取更新版本后,我的测试代码显示活动版本现在为false。