2010-09-30 70 views
1

之間的類變量值輸了...我有一個簡單的集成測試會和所有測試方法運行良好...但是...我 成立專班VAR休眠 - JUnit的小白 - 2種測試方法

int tempId; 

以供下列方法使用。 testSaveTag()在成功執行時設置值(現在所有內容都是自動提交的),而testUpdateTag()則更新新創建的標記。

@Test 
public void testSaveTag() { 
Tag tag = new Tag(); 
tag.setDescription("Test Tag"); 
tempId = instance.saveTag(tag); 
} 

@Test 
public void testUpdateTag() { 
Tag tag = instance.getTag(tempId); 
tag.setDescription("updated tag description!"); 
instance.updateTag(tag); 
} 

tempID的值獲得該2種方法之間丟失。

所以我想「什麼是做到這一點的正確方法」,

...和「爲什麼失去了價值?」

在此先感謝

回答

2

JUnit測試方法不應該依賴於以特定順序運行,並且應該只共享未被測試更改的類變量。

在testUpdateTag()中,您可能必須創建並保存新標籤才能獲取ID。或者是否有辦法檢索可以更新的標籤?

順便說一句,我希望你在某些時候加入斷言...... ;-)

+0

這是門票! Ehm,當然,是的:-)呃,我可以將這兩項測試結合起來! – vector 2010-09-30 20:40:56

1

對不起,我不是專家的JUnit怎麼過的大多數單元測試框架的工作原理有一個設置和撕裂測試的系統,你的每一個單元測試方法之間發生的下降。所以你的時間可能不會在這個過程中倖存下來。

+0

......嗯,這是有道理的。謝謝。 – vector 2010-09-30 15:37:21