我正在尝试对我的 Play 2.0 应用程序进行单元测试。
我有一个名为耐心的课程,下面是我的课程的简化版本:
public class Patient extends Model{
@Id
public Long id;
@Required
public String gender;
public Date updatedOn;
public void update(Object o){
this.updatedOn = new Date();
super.update(0);
}
}
如果我在浏览器中更新 Patient,它工作得非常好,但是当我编写单元测试并执行
Patient patient = new Patient();
patient.gender = "M"
patient.save();
assertThat(patient.id).isNotNull();
Long id = patient.id;
patient = Patient.find.byId(id);
assertThat(patient).isNotNull();
assertThat(patient.gender).isEqualTo("M");
patient.gender = "F";
assertThat(patient.gender).isEqualTo("F");
patient.update(patient.id);
它会导致错误:
[错误] 测试模型。PatientModelTest.updatePatient 失败:数据已更改。更新 [0] 行 sql[更新患者集 updated_on=? 哪里id=?和 date_of_birth=? 和性别=?和 updated_on=?] bind[null] [error] at com.avaje.ebeaninternal.server.persist.dml.DmlHandler.checkRowCount(DmlHandler.java:103) [error] at com.avaje.ebeaninternal.server.persist.dml .UpdateHandler.execute(UpdateHandler.java:88) [error] at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:86) [error] at com.avaje.ebeaninternal.server.persist .dml.DmlBeanPersister.update(DmlBeanPersister.java:66) [error] at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeUpdateBean(DefaultPersistExecute.java:91) [error] at com.avaje.ebeaninternal.server.core .PersistRequestBean。
这让我很头疼...请帮助...