簡體   English   中英

如何使用遞歸對象進行單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM