Play2.0アプリケーションで単体テストを実行しようとしています。
私にはpatientというクラスがあります。以下は私のクラスの簡略版です。
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);
エラーが発生します:
[エラー]テストmodels.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)[エラー] at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:86)[エラー] at com.avaje.ebeaninternal.server.persist .dml.DmlBeanPersister.update(DmlBeanPersister.java:66)[エラー] at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeUpdateBean(DefaultPersistExecute.java:91)[エラー] at com.avaje.ebeaninternal.server.core .PersistRequestBean。
これは私に本当の頭痛を与えています...助けてください...