2012-12-27 75 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