我正在为用Spring编写的RestFul API编写JUnit。关于软删除的JUnit测试
该API有一个称为“软删除”的功能,该功能有一个名为“active”的数据库列,如果用户删除该对象,则将active设置为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);
}
由于我可以在我的数据库表中看到活动设置为0,我相信我的测试代码是错误的。任何想法为什么发生这种情况?
#感谢您的意见。我更新了代码以从数据库中获取全新副本。现在活动是错误的,我的代码现在通过测试。
单元测试可能不应该与db进行交互 - 这不是一个单元测试,它是一个集成测试 – nhouser9
你的仓库的delete方法是什么?你能给一些代码吗? –