2012-12-27 41 views
0

我想在JPA/Playframework测试的UniqueConstraint:JPA测试的UniqueConstraint

@Test 
    public void saveWithTitleNotUnique() { // not unique title 

     Software software1 = builder.template1().withTitle("title1").create(); 
     Software software2 = builder.template1().withTitle("title1").create(); 

     software1.save(); 

     try { 
      software2.save(); 
      fail("software.title is not unique"); 
     } catch (Exception ex) {} 

    } 

...

@Entity 
public class Software extends Model { 

    @Column(unique = true) 
    public String title; 

但测试失败每一次,因为没有任何异常发生。

回答

0

我想通了:

我有一个错误,而建设的软件实例。所以,它可以工作并抛出异常。

@Test 
public void saveWithTitleNotUnique() { // not unique title 

    SoftwareTemplateBuilder builder1 = new SoftwareTemplateBuilder(); 
    Software software1 = builder1.template1().withTitle("title1").create(); 

    SoftwareTemplateBuilder builder2 = new SoftwareTemplateBuilder(); 
    Software software2 = builder2.template1().withTitle("title1").create(); 

    software1.save(); 

    try { 
     software2.save(); 
     fail("software.title is not unique"); 
    } catch (PersistenceException ex) {} 
} 
0

你还没有使软件的一个实例发生异常! 你必须做:Software software = new Software();

+0

我是通过构建器创建的。在create()方法里面有一个新的Software()。所以,这不是重点。 – ses