2016-06-09 89 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和滤波用方法名的粉丝