我有兩個問題。流利NHibernate的持久性規範組件和參考測試
1。 FNH不測試我的組件正確性,我不知道爲什麼。
System.ApplicationException:預期 'DomainModel.Model.Publisher',但得到 'DomainModel.Model.Publisher' 的 地產 '發佈商'。
[TestMethod]
public void CanCorrectlyMapBook()
{
new PersistenceSpecification<Book>(_session)
.CheckProperty(p => p.Name, "My Book")
.CheckProperty(p=> p.Id, 1)
.CheckProperty(p=>p.IncludesCDDVD, true)
.CheckProperty(p=>p.Isbn, "rder93q43949éwr")
.CheckProperty(p=>p.IsLoaned, false)
.CheckProperty(p=>p.Publisher, new Publisher(){PublisherHomepage = "www.google.de", PublisherName = "google"})
.VerifyTheMappings();
}
}
2。 FNH不能正確測試我的參考。
System.ApplicationException:預期 'DomainModel.Model.Employee',但得到 'EmployeeProxyd6f94daa37c74be8b5ccccf40c5c23fa' 物業 'LoanedBy'。
[TestMethod]
public void CanCorrectlyMapBook()
{
new PersistenceSpecification<Book>(_session)
.CheckProperty(p => p.Name, "My Book")
.CheckProperty(p=> p.Id, 1)
.CheckProperty(p=>p.IncludesCDDVD, true)
.CheckProperty(p=>p.Isbn, "rder93q43949éwr")
.CheckProperty(p=>p.IsLoaned, false)
.CheckReference(p=>p.LoanedBy, new Employee(){EMail = "",FirstName = "Alex", LastName = "Mueller"})
.VerifyTheMappings();
}
但是當我測試這個 「手動」 一切工作正常。
ISession mysession = Helper.CreateSessionFactory(false, false).OpenSession();
Book myBook = new Book()
{
Author = "Hesse",
IncludesCDDVD = true,
DateOfIssue = DateTime.Now,
Isbn = "erwe0ri",
IsLoaned = true,
Name = "My Book new",
Publisher = new Publisher() { PublisherHomepage = "www.google.de", PublisherName = "google" },
Release = new Release() { ReleaseDate = DateTime.Now, ReleaseNumber = 1 },
LoanedBy = new Employee() { EMail = "", FirstName = "Alex", LastName = "Mueller" }
};
mysession.Save(myBook);
mysession.Close();
mysession.Dispose();
我必須在datbase查找驗證這一點......
的PersistenceSpecification測試運行鍼對內存數據庫sqllite和我手動「測試」對SQL Server 2008運行
你們有沒有使用FNH並正確測試了一個參考和一個組件?
我認爲這沒有幫助,因爲組件沒有實體,所以它們沒有ID。我已經實現了object.Equals方法,但對於我的組件和引用仍然有相同的錯誤消息。但是,如果有人能夠向我展示一個簡單的例子,其中可以看到FNH API正常工作,那將會很好。對我來說,它似乎沒有。 – Rookian 2009-11-24 11:13:11
我不確定爲什麼組件不是實體將意味着實現equals或equalitycomparer不會有幫助。我提供了一個簡單的參考例子。 – fostandy 2009-11-24 15:24:47