2010-07-21 10 views
3

J'essaie d'obtenir des tests unitaires de base sur Play! en utilisant la bibliothèque de persistance de Siena avec GAE comme cible de déploiement.Jouez! + Siena + GAE + JUnit

J'ai le projet configuré correctement et peut déployer l'application à GAE. J'ai créé un objet de domaine de base:

public class User extends Model { 

    @Id(Generator.AUTO_INCREMENT) 
    public Long id; 

    @Column("first_name") 
    public String firstName; 

    @Column("last_name") 
    public String lastName; 

    @Column("email") 
    public String email; 

    public User(String firstName, String lastName, String email) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.email = email; 
    } 

    public static Query<User> all() { 
     return Model.all(User.class); 
    } 

} 

et un test unitaire de base:

public class BasicTest extends UnitTest { 

    @Before 
    public void setup() { 
     Fixtures.deleteAll(); 
    } 


    @Test 
    public void canCreateUser() { 
     new User("Jason","Miesionczek","[email protected]").insert(); 

     User user = User.all().fetch().get(0); 

     assertNotNull(user); 
     assertEquals(1,User.all().count()); 
    } 

} 

Je comprends que Play! 1.0.3, Le support des projecteurs pour Siena n'est pas encore là, ce qui devrait être corrigé dans 1.1, mais en attendant, que dois-je utiliser à la place de Fixtures.deleteAll() pour effacer le db de test avant chaque test?

À l'heure actuelle, ma deuxième assertion échoue car la base de données conserve les enregistrements précédemment insérés.

Répondre

2

Vous devez effectuer une suppression par table. Par exemple:

Model.all(User.class).delete(); 
2

Je ne sais pas si elle est déjà à la fin mais j'ai ajouté un soutien Fixture pour Sienne (testé avec le jeu 1.1, Gae 1.4, 1.3 SIENNE, crudsiena 1.2).

Il prend en charge deleteAll() et load():

SienaFixture.javahttp://pastie.org/1367878

Je suis assez nouveau pour jouer et SIENNE (1 semaine) donc il y a probablement une meilleure façon de le faire (en particulier deleteAll()) .

+0

Merci cela a beaucoup aidé –