我目前在一个项目中使用 NHibernate,并且正在使用 NDBUnit 为我的单元测试填充数据。我想要做的是验证 NDBUnit 使用的 XML 与我加载数据时 NHibernate 返回的类实例。
似乎我可以在类上使用反射来获取所有属性,然后在 NDBUnit XML 数据集中查找这些列值。我只是不确定我是否在重新发明轮子,或者是否有更好的选择来验证我的所有 NHibernate 映射是否正确?
我目前在一个项目中使用 NHibernate,并且正在使用 NDBUnit 为我的单元测试填充数据。我想要做的是验证 NDBUnit 使用的 XML 与我加载数据时 NHibernate 返回的类实例。
似乎我可以在类上使用反射来获取所有属性,然后在 NDBUnit XML 数据集中查找这些列值。我只是不确定我是否在重新发明轮子,或者是否有更好的选择来验证我的所有 NHibernate 映射是否正确?
查看 Fluent NHibernate 中的 PersistenceSpecification。该类中没有任何依赖于 Fluent NHibernate 的内容,我之前在测试普通的旧 NHibernate hbm.xml 文件时使用过它。
http://wiki.fluentnhibernate.org/Persistence_specification_testing
例如,您可以编写如下测试:
[Test]
public void CanCorrectlyMapEmployee()
{
new PersistenceSpecification<Employee>(session)
.CheckProperty(c => c.Id, 1)
.CheckProperty(c => c.FirstName, "John")
.CheckProperty(c => c.LastName, "Doe")
.VerifyTheMappings();
}
强烈推荐。