有些程式只該在條件滿足時才執行,但這些條件往往不會具體說明,只能藉閱讀演算法來推導。
比起用註解,用斷言明言假設是更好的技術做法。

Introduce Assertion
斷言永遠假定為真,所以系統其他部分不該檢查失敗情況,移除所有斷言程式仍該能正常運作。
斷言是個寶貴的溝通工具,用逐步縮小範圍的單元測試有更好表現,但它們仍提供系統執行到當前會有的假定狀態。
# Before
def calculate_area(length, width):
return length * width
length = 10
width = -5
area = calculate_area(length, width) # 可能產生不合理的負值
# After
def calculate_area(length, width):
assert length > 0, "Length must be positive"
assert width > 0, "Width must be positive"
return length * width
length = 10
width = -5
area = calculate_area(length, width) # 會拋出 AssertionError