2013-04-04 70 views
1

我是JUnit的新手,並試圖在我的遺留代碼庫中實現它。
我測試hibernateEntity.save()時應該聲明什麼?
JUnit:在休眠時保留什麼保存

+0

你的意思是你想測試[Session.save()](http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate /Session.html#save(java.lang.Object))? – FGreg 2013-04-04 17:52:04

+0

你可以發佈save()方法嗎? – 2013-04-04 20:11:13

回答

2

您將在方法內調用hibernateEntity.save()。 像這樣:

public boolean save(..){ 
    boolean status = false; 
    try{ 
    status = hibernateEntity.save()? 
    }catch(Exception e){ 
    //handle or throw 
    } 
return status; 
} 

所以要測試保存方法;你會對它的返回值做出斷言。所以爲了成功保存它的返回值應該是真實的。

所以基本上;我們用Junit測試行爲。您需要測試休眠操作是否成功。

+0

如果hibernateEntity正在返回任何我可以基於返回值聲明的東西。正如我前面提到的,我正在編寫遺留代碼的測試用例。無法更改每個實體的保存方法。 – 2013-04-04 17:31:38

+0

是;你也可以做到這一點。我舉了一個例子來說明我的觀點。想法是你應該返回一個值。 – 2013-04-04 17:34:26

1

解決方案是

public void testEntitySave() { 
    hibernateEntity.save() 

Entity testEntity = hibernateEntity.loadEntityByPK(hibernateEntity.pk); 

Assert.assertNotNull(testEntity); 

} 
+1

我同意這個總體思路;請記住,這是一個非常基本的測試級別。更好的測試覆蓋範圍將包括創建/編輯實體,然後包括Assert.assertEquals(expectedEntity,actualEntity)。 – Rafa 2013-04-05 01:23:02