2017-12-16 24 views
0

Objectify를 사용하여 Datastore에 액세스하는 GAE 응용 프로그램에 단위 테스트 프레임 워크를 설정하려고합니다. 이 테스트는 작성되었으며 로컬 환경에서 실행될 때 실패했습니다. 이유에 대신 예상 3. 모든 아이디어,이 Objectify 코드가 3 대신 1 개의 개체 목록을 반환하는 이유는 무엇입니까?

public class ObjectifyTest { 
    private final LocalServiceTestHelper helper = 
      new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig(), 
        new LocalMemcacheServiceTestConfig()); 
    private Closeable ofySession; 

    @Before 
    public void setUp() { 
     helper.setUp(); 
     ofySession = ObjectifyService.begin();   
    } 

    @After 
    public void tearDown() { 
     ofySession.close(); 
     helper.tearDown(); 
    } 

    @Test 
    public void testApiHandlerGetTrackerTag() { 
     Date now = new Date(); 

     TrackerTag tag1= new TrackerTag(); 
     tag1.setHash("..."); 

     TrackerTag tag2= new TrackerTag(); 
     tag2.setHash("..."); 

     TrackerTag tag3= new TrackerTag(); 
     tag3.setHash("..."); 

     OfyService.ofy().save().entities(tag1, tag2, tag3).now(); 

     assertEquals(3,OfyService.ofy().load().type(TrackerTag .class).list().size()); 
    } 

} 

이 테스트는 객관화에 대한 호출이 크기 1의 목록을 반환하기 때문에 assertEquals (...)에서 실패 :

다음

코드입니다 ?

+0

[이] (https://stackoverflow.com/questions/33738151/how-to-return-a-list-of-custom-objects-on-objectify) 당신을 위해 도움이 될 수 있습니다. – vinS

+0

왜 그렇게 행동하는지에 대한 단서가 없습니다. 어떤 Objectify 전문가도 여기에 도움이됩니까? – redflour

+0

TrackerTag 클래스의 코드를 게시 할 수 있습니까? –

답변

0

LocalServiceTestHelper의 기본 동작은 최종 일관성을 시뮬레이션하는 것입니다. 이것은 일반적으로 테스트를 작성할 때 원하는 것이 아닙니다. 도우미에게 전달하는 LocalDatastoreServiceTestConfig 개체에서 setApplyAllHighRepJobPolicy()을 호출하여 테스트 동작의 강력한 일관성을 유지할 수 있습니다.

+0

이 기능을 사용해보십시오. 작동하면 다시 시도해보십시오. 감사! – redflour