首先定义模型, User和Article为一对多的双向关联。
@Entity
public class User {
@Id
@GeneratedValue
private int id;
private String name;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
@Entity
public class Article {
@Id
@GeneratedValue
private int id;
private String title;
@ManyToOne
private User user;
然后将fixture定义在spring的context中,如下:
<bean id="me" class="com.springfixture.domain.User"> <property name="name" value="admin"/> <property name="articles"> <set> <ref bean="article"/> <ref bean="aboutTest"/> </set> </property> </bean> <bean id="article" class="com.springfixture.domain.Article"> <property name="title" value="spring fixtures guide"/> <property name="user" ref="me"/> </bean> <bean id="aboutTest" parent="article"> <property name="title" value="How to test"></property> </bean>
然后在测试类中:
//加载数据
@Before
public void loadData(){
new SpringFixture(this.sessionFactory).loadData(this);
}
//注入单个测试对象, “me”为bean的名称
@Fixture("me")
private User user;
//也可以直接作为变量名
@Fixture
private User me;
//注入多个对象
@Fixture(type=Article.class)
private List<Article> articles;
最后请看看源代码,有什么好的建议一起研究研究,谢谢!