2012-03-09 73 views
0

是否有意義將不存在的唯一ID傳遞給我的GetXX方法以期望創建的列表沒有任何計數?我的意思是,當我測試一個現有的Id時,創建的List與它所保存的項目數量無關。如果我傳遞一個不存在的ID,爲什麼應該列表null或沒有count == 0?我不確定這個測試的意義。它是否有意義單元測試不存在Id

[Test] 
public void Get_Teststeps_By_UnitId_Not_Existing() 
{ 
    // ARRANGE 
    ITeststepDataProvider provider = new TeststepDataProvider(_connectionString); 
    int unitId = 100; 

    // ACT 
    List<Teststep> units = provider.GetTeststepsByUnitId(unitId); 

    // ASSERT 
    Assert.IsNotNull(units); 
    Assert.Count(0, units); 
} 

回答

0

這將非常依賴於被測系統,它應該做什麼以及如何定義。例如,如果您定義您正在測試的方法不應該返回空值,而是某些給定輸入的空集合(例如,不存在的ID - 不管那意味着什麼),那麼測試這種情況和正確的方法。

+0

確實很有道理:)它就像你說的那樣。 – Pascal 2012-03-09 21:46:09

1

我認爲負面測試是一個有效的執行。它是否應該有一個計數爲0而不是爲空我想是由應用程序試圖完成的。但是,通常情況下,您想要測試的是與正面的情況一樣多的負面情況。

1

單元測試不是驗證GetXX方法,因爲它現在是(雖然它從未傷害測試方法做什麼你認爲它即使是簡單的),它也使任何人都改變/稍後重構代碼以防意外更改導致其他代碼中斷的內容。如果你依賴某種行爲,那麼無論多麼簡單,你都應該確保對它進行測試。

換句話說,不要只是跳過一個測試,因爲它現在沒有意義,考慮以後的維護,並且測試實際上爲方法的用戶提供了良好的文檔,以說明該方法如何被假設爲要使用和/或不使用。

1

如果您的代碼調用總是期望GetXX()返回List的實例,那麼您應該對其進行測試。這將確保有人不能更改GetXX()代碼並使其返回null,然後在您的系統中導致NullReferenceException

相關問題