良好的命名
一些不好的例子可以很好地說明良好命名的重要性:
[Test]
Test1() {...} //Cryptic name - absolutely no information
[Test]
TestFoo() {...} //Name of the function - and where can I find the expected behaviour?
[Test]
TestTFSid567843() {...} //Huh? You want me to lookup the context in the database?
好的測試需要好名字。好測試不測試方法,測試場景或要求。
良好的命名還提供有關上下文和預期行為的資訊。理想情況下,當你的構建計算機上的測試失敗時,你應該能夠在不檢視測試程式碼的情況下決定出現了什麼問題,甚至更難,有必要對其進行除錯。
良好的命名使你有時間閱讀程式碼和除錯:
[Test]
public void GetOption_WithUnkownOption_ReturnsEmptyString() {...}
[Test]
public void GetOption_WithUnknownEmptyOption_ReturnsEmptyString() {...}
對於初學者,使用 EnsureThat_ 或類似字首啟動測試名稱可能會有所幫助。從“EnsureThat_”開始,有助於開始考慮需要測試的場景或需求:
[Test]
public void EnsureThat_GetOption_WithUnkownOption_ReturnsEmptyString() {...}
[Test]
public void EnsureThat_GetOption_WithUnknownEmptyOption_ReturnsEmptyString() {...}
命名對於測試裝置也很重要。在測試類之後命名測試夾具:
[TestFixture]
public class OptionsTests //tests for class Options
{
...
}
最後的結論是:
良好的命名會帶來良好的測試,從而在生產程式碼中實現良好的設計。