gpt4 book ai didi

java - 软删除的 JUnit 测试

转载 作者:行者123 更新时间:2023-12-01 20:55:24 25 4
gpt4 key购买 nike

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

该 API 有一个名为“软删除”的功能,该功能有一个名为“active”的数据库列,如果用户删除该对象,则 active 会设置为 0,表示该对象已被删除。

这是我的软删除 Junit 测试代码。令我惊讶的是,Junit 结果显示,即使在我删除对象后,active 始终为 1。

enter image description here

这是删除代码。正如您所看到的,它只是更新“active”并将其设置为 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);

}

因为我可以在我的数据库表中看到 active 设置为 0,所以我确信我的测试代码是错误的。知道为什么会发生这种情况吗?

#

谢谢你的建议。我已更新代码以从数据库获取新副本。现在 Activity 是假的,我的代码现在通过了测试。

enter image description here

最佳答案

在数据库中“删除”制造商后,您似乎找不到制造商。

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

关于java - 软删除的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443374/

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