【发布时间】:2010-05-20 21:29:06
【问题描述】:
我在编写使用假存储库的集成测试时遇到问题,
例如:假设我有一个教室实体,它聚合学生...
var classroom = new Classroom();
classroom.Students.Add(new Student("Adam"));
_fakeRepository.Save(classroom);
_fakeRepostiory.GetAll<Student>().Where((student) => student.Name == "Adam"));
// This query will return null...
当使用我对存储库的真实实现(基于 NHibernate)时,上面的代码有效(因为保存操作会级联到上一行添加的学生),
你知道任何支持这种行为的虚假存储库实现吗? 关于如何自己实现的想法?
或者你有什么其他建议可以帮助我避免这个问题?
提前致谢, 埃里克。
【问题讨论】:
-
恕我直言存储库不应更新子实体。对于所有聚合根必须是它们的存储库。
标签: .net unit-testing persistence repository domain-driven-design