Joh*_*hn_ 10 .net c# nunit fluent-nhibernate
你会如何测试这种情况?
我刚刚开始研究NHibernate并在TDD上进行了第一次打击.到目前为止,我真的很喜欢它,并且一直使用流畅的Nhibernate来映射类.
但是,当在PersistenceSpecification上使用VerifyTheMappings方法时,我似乎正在走向死胡同.
基本上我有两个类,Recipient和RecipientList.RecipientList类具有到收件人的映射,具有流畅的"HasMany"关系:
public class RecipientListMap : ClassMap<RecipientList>
{
public RecipientListMap()
{
Id(x => x.ID);
Map(x => x.ApplicationID);
Map(x => x.Name);
Map(x => x.IsDeleted);
HasMany<Recipient>(x => x.Recipients).WithKeyColumn("RecipientListID").AsList().LazyLoad();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在测试中使用以下代码时:
private IList<Recipient> _recipients = new List<Recipient>()
{
new Recipient { FirstName = "Joe", LastName = "Bloggs", Email = "joe@bloggs.com", IsDeleted = false },
new Recipient { FirstName = "John", LastName = "Doe", Email = "john@doe.com", IsDeleted = false },
new Recipient { FirstName = "Jane", LastName = "Smith", Email = "john@smith.com", IsDeleted = false }
};
[Test]
public void Can_Add_RecipientList_To_Database()
{
new PersistenceSpecification<RecipientList>(Session)
.CheckProperty(x => x.Name, "My List")
.CheckProperty(x => x.Columns, "My columns")
.CheckProperty(x => x.IsDeleted, false)
.CheckProperty(x => x.ApplicationID, Guid.NewGuid())
.CheckProperty(x => x.Recipients, _recipients)
.VerifyTheMappings();
}
Run Code Online (Sandbox Code Playgroud)
发生以下错误:
failed: System.ApplicationException : Expected 'System.Collections.Generic.List`1[Project.Data.Domains.Recipients.Recipient]' but got 'NHibernate.Collection.Generic.PersistentGenericBag`1[Project.Data.Domains.Recipients.Recipient]' for Property 'Recipients'
Run Code Online (Sandbox Code Playgroud)
我可以看到错误是因为我传入List并且返回的列表是PersistentGenericBag,因此抛出错误.如果你不能只是传入一个IList,我不会得到你如何测试这个?
任何帮助,将不胜感激.
| 归档时间: |
|
| 查看次数: |
4824 次 |
| 最近记录: |