2016-06-09 96 views
1

如何避免重複測試時,我需要測試子實體的插入在集成測試 ????在Java中如何避免重複插入測試

使用案例:

我有一個Person實體(母公司)和電話實體(孩子)。我需要堅持一個電話,然後堅持一個人,但如果我有一個實體有很多孩子,我的測試將是一個重複代碼的怪物!

我需要這樣的東西:

public class TestPerson { 

    public void should_insertPerson_and_find(){ 
     //I need to call should_insertPhone_and_find() to insert a Phone before insert people, because of dependency..... 
     //... run test 
    } 

} 

public class TestPhone { 

    public void should_insertPhone_and_find(){ 
     //... run test 
    } 

} 

有人能sugest這方面的任何API? JUnit可以做到這一點嗎?

+0

如果你想要測試的是確保子實體被正確插入,那麼爲什麼你不能用單個實體做到這一點?爲什麼你需要多個子實體來驗證? – K139

+0

因爲我運行一個集成測試,我需要測試實體 – Lucas

回答

-1

最好的辦法,我發現它是mkyong依賴性試驗品! !

感謝您的答案傢伙!

1

基本上有三種選擇:

  • 有一個@Before方法,做初始化
  • 使用JUnit Rules
  • 創建一個其他類的實用方法,並呼籲從@Before方式方法的共同的抽象超這兩類
+0

更多評論之間的關係,比回答 – hd1

+0

@ HD1如果你這樣想,將其標記爲「應該是一個評論」。讓我們看看mods是否同意 –

1

任何測試應保持易讀。 這是我的建議。

// given 
cleanTestPersonsAndPhones(); 
Phone tphone = createTestPhone ("testShouldA"); 
Person tperson = createTestPerson(tphone); 

// when 
// should find tphone or tperson relation(s) 

// then 
// verify find result (s) 
cleanTestPersonsAndPhones(); 

我不是因爲測試是不太容易重新閱讀使用@Before和濾波用方法名的粉絲