我正在尝试在 Play 上启动和运行一些基本的单元测试!使用带有 GAE 作为预期部署目标的 Siena 持久性库的框架。
我已正确配置项目并且可以将应用程序部署到 GAE。我创建了一个基本的域对象:
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);
}
}
和一个基本的单元测试:
public class BasicTest extends UnitTest {
@Before
public void setup() {
Fixtures.deleteAll();
}
@Test
public void canCreateUser() {
new User("Jason","Miesionczek","atmospherian@gmail.com").insert();
User user = User.all().fetch().get(0);
assertNotNull(user);
assertEquals(1,User.all().count());
}
}
我在 Play 中明白这一点!1.0.3,尚不存在对 Siena 的 Fixtures 支持,这应该在 1.1 中修复,但与此同时,我应该使用什么来代替 Fixtures.deleteAll() 在每次测试之前清除测试数据库?
现在我的第二个断言失败了,因为数据库保留了以前插入的记录。