[英]How to unit test with a recursive object
我有一個在構造函數中帶有相同類型參數的對象:
public class Person {
private Person theParent;
private string theName;
public Person(string aName, Person aParent)
{
if(aParent == null)
{
thrown new ArgumentNullException("aParent");
}
theParent = aParent;
theName = aName;
}
}
在我的單元測試中,我必須創建一個新的Person
對象,但構造函數需要傳入另一個Person
對象。我通過使Person
對象從數據庫傳入(使用NHibernate及其所有魔術),在我的應用程序中解決了此問題。 *。 我不想將數據庫訪問權限與此測試相關聯,因為它沒有測試任何數據庫功能。 我應該只是模擬父對象(我在其他一些測試中使用Rhino Mocks)還是有更好的方法來解決這個問題?
*保證在數據庫中總是有一條記錄,我可以檢索該記錄來作為父對象。
我認為在某個時候您有望到達最高節點? 那么aParent
的正確值是aParent
?
我的猜測將為null
,這意味着此Person
是該行中的第一個(無論對您的應用程序意味着什么,也許是Adam還是其他?)。
您可能會測試遞歸函數調用的副作用,例如,使用計數器字段變量來檢查調用次數,將調用參數存儲在某種可以由Unit Test進行檢查的容器中,等等。當然,您將在發行版中刪除所有這些內容建立。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.