我玩TDD和單元測試一般。我見過的所有例子都是返回值,這似乎是最簡單的情況。但是,如果我的函數沒有返回值呢?單元測試功能,不返回值
例如,假設我有一個Actor類,我需要一種方法來增加它的「健康」。我做了一個像下面這樣的單元測試,然後讓Actor類滿足它,但這是否正常並且很常見?我沒有看到很多使用單元測試中的屬性的例子。我應該用這種東西來思考嗎?
[TestMethod]
public void IncreaseHealth_PositiveValue_PositiveHealth()
{
Actor a = new Actor();
int beforeHealth = a.Health;
a.IncreaseHealth(5);
int afterHealth = a.Health;
Assert.AreEqual(beforeHealth + 5, afterHealth);
}
是的,沒有錯或不常見的。你的測試沒問題。 –
這很好,我會建議使用一些隨機數而不是一個常數,以增加覆蓋率。 – Ofiris
我不會建議使用隨機數字,隨機數字可能會導致測試有時會通過,有時會失敗。如果有特殊情況需要調查(如int.MaxValue,int.MinValue,溢出等),請爲這些測試創建一個單獨的測試。在任何情況下,它們可能都需要特殊的處理,運行時的默認行爲很少是你想要的。 – jessehouwing