我想在不依赖应用程序的数据库的情况下获得一些测试工作。该应用程序正在使用JPA w/Hibernate。我曾尝试在方法和类上使用@Transactional
注解该类,但没有成功。单元测试一个依赖于@OneToMany集合的类
这里是Employee.java
的关系:
@OneToMany(mappedBy = "manager", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Employee> directReports;
这里的测试,最后ARG是manager
:
Employee ceo;
Employee evp;
@Before
public void setup() {
ceo = new Employee("Name", "ceo", null);
evp = new Employee("Name", "evp", ceo);
}
@Test
public void testThatDirectReportsAreAssignedWithoutPersistence() {
assertNotNull(ceo.getDirectReports());
}
你如何运行你的单元测试?为什么你期望,如果你自己没有做这个清单,那么这个清单是人口稠密的? – dunni
你可以发布你的构造函数Employee(),因为你正在测试没有任何数据库,所以没有实体持久化或链接到休眠会话,所以你将不会有任何冬眠魔术的自动映射你的关联.. –
Hibernate在这里是完全不相关的。你必须测试'getDirectReports()'在'new Employee(“Name”,“ceo”,null)';上调用时不会返回null。这完全取决于构造函数和Employee的getDirectReports()方法。你还没有发布。 –