2012-04-25 2 views
3

나는 셀 피니언 테스트를 작성했다.이 셀렌 테스트는 객체 mongodb (morphia의 save 메소드 사용)의 속성에서 런타임 변경으로 작성되었으며이 속성이 변경되었는지 여부를 확인합니다. 그러나 결과 변수는 발생하지 않습니다. 즉각적인 저축을하는 방법은 무엇입니까?재생! framework 1.2.4 - morphia에서 즉각 저장

%{ 
    // load models 
    // deleted = true 
}% 

#{selenium}    
    click('link=Delete') 
    <!--     
    SomeClass someObj = SomeClass.findById(id); 
    someObj.deleted = true; 
    someObj.save(); 
    --> 
#{/selenium} 

%{ 
    models.SomeClass someObj2 = models.SomeClass.find("fieldName", "fieldValue").get(); 
    boolean expectedStatus = someObj2.deleted; 
    org.junit.Assert.assertTrue(expectedStatus); 
}% 

Save 메서드는 테스트 중에 MongoDB의 값을 변경하지 않습니다. 테스트가 끝난 후 작업을 저장하십시오. 이것은 문제입니다

+0

Play 1.2.4 vervion을 사용하고 있습니다. 프레임 워크 –

+0

어이! 나는 당신의 질문을 이해한다고 생각하지 않는다. 예상되는 결과는 무엇이며, 당신은 어떤 결과를 얻고 있는가? – kritzikratzi

+0

확인. 나는 같은 문제가있다 http://stackoverflow.com/questions/8488565/play-framework-immediate-save하지만 JPA를 사용하지 말라. 플레이 프레임 워크에 Morphia 플러그인을 사용하고 있습니다. MongoDB에는 거래가 없습니다. –

답변

0

여기에 WriteConcern을 사용하십시오. 쓰기 작업을 수행 할 때 (예를 들어) 디스크로 플러시되고 X로 복제 된 경우에만 쓰기가 완료된 것으로 간주하도록 시스템에 알리기 위해 "write concern"을 지정할 수 있습니다 노예. Morphia의 예는 다음과 같습니다.

morpiaDao.delete(company, new WriteConcern(true));