The Entity class is extremely lightweight:

http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity.html

It's just a class with two dependencies that aren't in the Java Standard
Library:

- DataTypeUtils, which takes care of making sure properties can be persisted
and converted
- a class that makes it compatible with our protobuf RPC implementation

Carlos, where are you seeing that com.google.appengine.api.datastore.Entity
is slow? Can you post code?

--
Ikai



On Thu, Oct 28, 2010 at 2:40 PM, Carlos Ble <[email protected]> wrote:

> App Engine is so great that you can not write unit tests using
> entities even if
> you don't persist them. Just calling the constructor of an entity
> makes all the datastore
> stuff load which is slow. You do not want your unit test to take 1
> minute to run, do you?
> What we have done to be able to write unit tests is to not create
> objects directly but
> use a factory. So we have an EntitiesFactory which give us objects
> which are not actual
> entities but have the same properties. Apart from the benefit of
> running tests fast and isolated (because they are not real entities
> they can't alter database), we get a new layer that
> makes it easy to migrate to other persistence mechanisms.
>
> Cheers
>
> On 28 oct, 19:52, "Ikai Lan (Google)" 
> <[email protected]<ikai.l%[email protected]>
> >
> wrote:
> > Do you need to mock Entity? Can you use a real instance of an Entity and
> > check for state changes? You can mock out DatastoreService, so it might
> make
> > more sense to write your expects() in those mocks instead. Entity classes
> > only really have getProperty() and setProperty(), and in my opinion, it's
> > not worth writing tests to see if these get called. What are you trying
> to
> > do?
> >
> > --
> > Ikai Lan
> > Developer Programs Engineer, Google App Engine
> > Blogger:http://googleappengine.blogspot.com
> > Reddit:http://www.reddit.com/r/appengine
> > Twitter:http://twitter.com/app_engine
> >
> > On Thu, Oct 28, 2010 at 9:31 AM, Mayumi Liyanage <
> >
> > [email protected]> wrote:
> > > In the project I'm working on we are using GWT + GAE. We are unit
> > > testing using automocking container Jukito (http://code.google.com/p/
> > > jukito/) which is  build on top of Mokito (http://code.google.com/p/
> > > mockito/) + JUnit.
> > > The problem is unit testing the Mapper API. Since Mapper API's map
> > > method takes an Entity as a argument so testing framework will have to
> > > have access to this Entity class. However we could not mock the Entity
> > > class since it is a final class.  Also, we could not instantiate the
> > > Entity class outside of GAE environment. '
> > > Does anyone have workaround for unit testing using Entity?
> >
> > > Thanks.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google App Engine" group.
> > > To post to this group, send email to [email protected]
> .
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine%[email protected]>
> <google-appengine%[email protected]<google-appengine%[email protected]>
> >
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to