我目前正在项目中使用NHibernate,并且正在使用NDBUnit为数据库填充数据以进行单元测试。我想做的是在加载数据时验证NDBUnit使用的XML对NHibernate返回的类实例。
似乎我可以在类上使用反射来获取所有属性,然后在NDBUnit XML数据集中查找这些列值。我只是不确定我是否重新发明轮子,或者是否有更好的替代方法来验证我的所有NHibernate映射是否正确?
答案 0 :(得分:0)
在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();
}
强烈推荐。