因此,我開始爲一個簡單的程序(側面玩具遊戲)編寫一些邏輯。你有一個特定的船舶(稱爲設置),它是一個船+模塊。您從基於船舶的空設置開始,然後將模塊添加到該設置。船舶也有編號陣列的模塊位置。TDD:添加一種方法來測試狀態
var setup = new Setup(ship); // ship is a stub (IShip) defined someplace else
var module = new Mock<IModule>().Object;
setup.AddModule(module, 1); // 1 = which position
所以,這是我測試方法中的代碼。我現在需要在此代碼上聲明。那麼,我需要一個getter方法嗎?
Assert.AreEqual(module, setup.GetModule(1));
這聽起來很愚蠢,我擔心什麼,但對於一些愚蠢的原因,我關心的是添加一個方法只是斷言,測試通過。
這樣好嗎?其實是TDD推動的設計過程的一部分?例如我知道我需要一個AddModule方法,因爲我想測試它,而這需要一個GetModule方法來測試,這只是我的設計通過TDD進化而來的。
或者是這種氣味,因爲我甚至不知道我是否真的需要GetModule在我的代碼中,它只會用於測試?
例如,添加模塊將最終影響裝備的不同屬性(護甲,盾牌,火力等)。事情是那些將變得複雜,我想從一個簡單的測試開始。但最終,這些都是我關心的公共屬性 - 設置由其統計數據定義,而不是由模塊列表定義。
如果您添加模塊,您肯定需要最終獲取它們...... –