2013-03-17 21 views
0
工作

我使用PlayFramework 1.2.5和我工作的下面Fixtures.loadModels不PlayFramework

public class CaseFoldersControllerTests extends FunctionalTest { 

    @Before 
    public void setup() { 
    Fixtures.deleteDatabase(); 
    Fixtures.loadModels("data.yml"); 
    } 

    @After 
    public void teardown() { 
    } 

... 

    @Test 
    public void createAction() { 
    .... 
    Request request = newRequest(); 
    request.path = "/case/create"; 
    request.body = new ByteArrayInputStream(json.getBytes()); 
    Response response = makeRequest(request); 

    //Verify response is OK 
    assertStatus(200, response); 
    } 
} 

在data.yml的數據顯示一個FunctionalTest不可用)。但是,我的測試完成後,數據庫中的數據

如果我將數據加載語句從@Before方法移動到@After方法...則測試成功(因爲數據現在已從前一個測試重置爲&)。

我假設這是JPA會話相關的,但加入後Fixtures.loadModels下列()沒有幫助:

JPA.em().flush(); 

而且,有趣的是,該方法@Before從複製我單元測試它工作正常。只有FunctionalTest纔有問題。

TIA, M2

回答

0

首先,我們需要確保您的設置是真正被稱爲的,所以我建議使用記錄儀你的方法裏面知道。如果它真的被調用,那麼我建議你在不使用該請求的情況下測試你的yml,也許通過使用你試圖插入的模型的findAll()來使用你的yml。這樣我們可以肯定,搞亂代碼不是你的要求。

**這件事發生在我以前.....我的@Before沒有運行,因爲我導入了play.MVC.Before,您必須導入org.junit.Before