我正在爲用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方法是什麼?你能給一些代碼嗎? –