S2EJB3Unitの進み具合
まだできていないです。
遅くて申し訳ないですm(__)m
S2EJB3Unitのちょっとした紹介を書いておきます。
@Entity public class Employee { @Id private Long id; private long empno; private String name; @ManyToOne private Department department; // getter/setter省略 }
というエンティティがあった場合、
@Rollback public void test() { readXlsWriteDb("Prepare.xls"); List<Employee> actual = employeeDao.getAllEmployees(); DataSet expected = readXls("Result.xls"); assertEntityListEquals("1", expected, actual); }
という感じでテストコードを書きます。
expectedなExcelのEmployeeとDepartmentのシートに期待値が用意されていればassertEntityListEqualsで実際値とそれらを比較します。
ちなみに、Employeeのシートに用意できるカラムは「id」「empno」「name」「department_id」です。最初、FK(ここではdepartment_id)はEntity単体(ここではEmployee)に含まれないのでテスト対象外と考えていたのですが、FKがないとテストデータが用意しにくいと思うのでFKの値はシートに用意されていればちゃんと比較することにします。
今は@JoinColumnsとか@PrimaryKeyJoinColumnsが使われたときにうまくFKを設定できるようにする方法を考えています。
(Embeddedでなくてもひとつの永続フィールド(プロパティ)に複数のカラムが対応することがあるのですよね。いままでこれをまったく考えていなかったですorz)