[appengine-java] Re: Testing with JDO
Hi Daniel, Here is the source code I use daily on my own tests (starts all local Services that I currently need) You can forget Ofy.reset(): I use Objectify (must simpler and more transparent & efficient than JDO which I started with) public class TestCaseServer { private com.google.appengine.tools.development.testing.LocalServiceTestHelper bssHelper; private com.google.appengine.tools.development.testing.LocalServiceTestHelper dsHelper; private com.google.appengine.tools.development.testing.LocalServiceTestHelper imgHelper; private com.google.appengine.tools.development.testing.LocalServiceTestHelper userHelper; @Before public void setUp() { // System.out.println("Entering @Before for TestCase" ); this.setupBlobstoreService(); this.setupDatastoreService(); this.setupImageService(); this.setupUserService(); // Ofy.reset(); } @After public void tearDown() { // System.out.println("Entering @After for TestCase"); this.removeEntities(); //this.teardownBlobstoreService(); this.teardownDatastoreService(); this.teardownImageService(); this.teardownUserService(); } private void setupBlobstoreService() { this.bssHelper = new com.google.appengine.tools.development.testing.LocalServiceTestHelper( new com.google.appengine.tools.development.testing.LocalBlobstoreServiceTestConfig()); this.bssHelper.setUp(); } private void setupDatastoreService() { this.dsHelper = new com.google.appengine.tools.development.testing.LocalServiceTestHelper( new com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig()); this.dsHelper.setUp(); } private void setupImageService() { this.imgHelper = new com.google.appengine.tools.development.testing.LocalServiceTestHelper( new com.google.appengine.tools.development.testing.LocalImagesServiceTestConfig()); this.imgHelper.setUp(); } private void setupUserService() { this.userHelper = new com.google.appengine.tools.development.testing.LocalServiceTestHelper( new com.google.appengine.tools.development.testing.LocalUserServiceTestConfig()); this.userHelper.setUp(); } /* private void teardownBlobstoreService() { this.bssHelper.tearDown(); } */ private void teardownDatastoreService() { this.dsHelper.tearDown(); } private void teardownImageService() { this.imgHelper.tearDown(); } private void teardownUserService() { this.userHelper.tearDown(); } } On Oct 22, 1:01 pm, Daniel Blasco wrote: > Hi, I'm using GAE 1.3.5 and JUnit 4. > > I want to test a GAE App which uses JDO. Firstly I read the "HowTo" in > the GAE official > site:http://code.google.com/appengine/docs/java/tools/localunittesting.html > But there is no clues. > > In this pagehttp://blog.appenginefan.com/2009/05/jdo-and-unit-tests.html > I found some instructions but, obselete I guess. > > Some instructions please? > > Thanks! -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Testing with JDO
Thank you Didier. This is my BaseTest.java and works perfect now: package ...; import static org.junit.Assert.assertEquals; import java.util.Date; import java.util.List; import javax.jdo.PersistenceManager; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.declaraciones.PMF; import com.declaraciones.shared.Declaracion.EstadoDeclaracion; import com.declaraciones.shared.Movimiento; import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig; import com.google.appengine.tools.development.testing.LocalServiceTestHelper; public class BaseTest { private final LocalServiceTestHelper dsHelper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); private final PersistenceManager pm = PMF.getPersistenceManager(); @Before public void setUp() { System.out.println("Entering @Before for BaseTest"); dsHelper.setUp(); } @After public void tearDown() { System.out.println("Entering @After for BaseTest"); this.dsHelper.tearDown(); } // run this test twice to prove we're not leaking any state across tests @SuppressWarnings("unchecked") private void doTest() { String query = "select from " + Movimiento.class.getName(); assertEquals(0, ((List) pm.newQuery(query).execute()).size()); Movimiento m1 = new Movimiento(); pm.makePersistent(m1); assertEquals(1, ((List) pm.newQuery(query).execute()).size()); Movimiento m2 = new Movimiento(); pm.makePersistent(m2); assertEquals(2, ((List) pm.newQuery(query).execute()).size()); } @Test public void testInsert1() { doTest(); } @Test public void testInsert2() { doTest(); } } -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Testing with JDO
Daniel, You're welcome. didier On Oct 25, 12:40 pm, Daniel Blasco wrote: > Thank you Didier. > > This is my BaseTest.java and works perfect now: > > package ...; > > import static org.junit.Assert.assertEquals; > > import java.util.Date; > import java.util.List; > > import javax.jdo.PersistenceManager; > > import org.junit.After; > import org.junit.Before; > import org.junit.Test; > > import com.declaraciones.PMF; > import com.declaraciones.shared.Declaracion.EstadoDeclaracion; > import com.declaraciones.shared.Movimiento; > import > com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig; > import > com.google.appengine.tools.development.testing.LocalServiceTestHelper; > > public class BaseTest { > private final LocalServiceTestHelper dsHelper = new > LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); > private final PersistenceManager pm = PMF.getPersistenceManager(); > > @Before > public void setUp() { > System.out.println("Entering @Before for BaseTest"); > dsHelper.setUp(); > } > > @After > public void tearDown() { > System.out.println("Entering @After for BaseTest"); > this.dsHelper.tearDown(); > } > > // run this test twice to prove we're not leaking any state across > tests > @SuppressWarnings("unchecked") > private void doTest() { > String query = "select from " + Movimiento.class.getName(); > assertEquals(0, ((List) > pm.newQuery(query).execute()).size()); > Movimiento m1 = new Movimiento(); > pm.makePersistent(m1); > assertEquals(1, ((List) > pm.newQuery(query).execute()).size()); > Movimiento m2 = new Movimiento(); > pm.makePersistent(m2); > assertEquals(2, ((List) > pm.newQuery(query).execute()).size()); > } > > @Test > public void testInsert1() { > doTest(); > } > > @Test > public void testInsert2() { > doTest(); > } > > } -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.