????????????

????????????????????????Щ???????Σ???Щ????????????????????????????????????????Щ?????????????????????????????????????????????????Щ???Ρ?

????????????Bug ???????????????????????????????????????? ?????????Щ????????????????????????????????????????????????ж????????????????????????е???????????????????????

??????????????????з?????bug??????????????????????????????????????????bug?????????????????????????????С??????????????????bug????????????????Щbug?????????????????????????????????????ó?????????????????????????????У?????????????????????????????????????????bug???????????

??????????????? ????????????????????????Щ???β??????????????????????????????????????????????????????????????????????????????????????????????????????????????У?????а??????????????????????????????????ò???????????????????????????????????????????????20????????????????????????????????????????????????????????????????????????????????????????????顣???????????????????????ó????????????????????????????????????????????????

???????????????????????????????????????????????????DRY????д???????????????????????????????????????

????????????????? ??????????????????????????????????????????п???????Щ????????п????????(??????????????????????).????ζ????????Щ?????????????????????????Щ????????????????????????????????????????????????????????????????????д??????????????????????????API????????????????????????????????????????????????е?????????????????????????????Щ????????????????????????????2????????????????????????????????????????????????????Σ????????????μ????????????????????????д????????????

?????????????????

????????????Test Driven Development (TDD)??????????????????????????"Fail by testing something illogical."?е?"Fail first"??????磬????????????????????????

    ?? returns the sum of the two numbers
Function Sum(ByVal a As Integer?? ByVal b As Integer) As Integer

????????????μ???д?????????

    _
Public Sub Sum_AddsOneAndTwo()
Dim result As Integer = Sum(1?? 2)
Assert.AreEqual(4?? result?? "bad sum");
End Sub

???????????????????????д??????????????????????????д????????????

??????????????????????д????Щ????????????????????????????????????????????У???????Σ???????????????????????????????????????????????????????????????????????????????D?D?????????????????????????????????test-first?滮???????????????????????????????????????????????????????????????????

??TDD??????????????????????????????????????????????????????????????????????????????????????????????????????????磬??1??1????0???ζ??????????????????????????????????????????У??????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????п???????????????????????????????????????????????????????????????????????????????Щ???????????????????Щ??С??????????????????????????仰??????????

??????????????????? ?????????????????????????????????????????????????????????????????????????????????????????μ?????????????????????????????????????Ч??????????????????????????

??1.?????????????Ч????????????????????????????????????Ч?????????

????2.??????????????????μ??????????????μ?????????????μ??????£????????????????????????????????????????????????????

??????????????????????ò???????????????????????????Ч??????磬??????????????????FOO????????????????????????????????Test??X???????????????????Щ??????????????????????????????????????????????Щ???????????????????Щ??????????????????????Test X?????????????????????????????????????????????????????????????÷???????????Щ?????????衣

????????ζ??????????Test X????????????Щ???????????????????????????Щ??????????????????????????????????????μ??????

????????????????200???????????????????μ?????????????????????????????????????????????????????????е?????????????????????С?

?????????????Angles ???????????????′?????????????????????????????????????????????????е????????????????????????????????????????????????????????

??????????????????÷?????????Щ??????к???????÷????????????????????????????????????????????????????????????????к?????????????д?????д???

??????????????????????????????????????????????????????????Щ??????????С???????????????????????????????????????????????????????

?????????????????Щ?????????Щ?????????????е????????????????????磬????????????

    Public Function Sum(ByVal x As Integer?? ByVal y As Integer?? _
ByVal allowNegatives As Boolean) As Integer
If Not allowNegatives Then Throw New Exception()
Return x + y
End Function


    ?????????????????????????Щ??????β????仯??

    ?? Try this...
If Not True Then ?? replace flag with const
If x < 0 OrElse y < 0 Then Throw New Exception()
End If

?? Or this...
If Not allowNegatives Then
?? replace check with const
If False OrElse y < 0 Then Throw New Exception()
End If
 


????????е????????????????????????????????????????????????????????????????顣???£?

??Assert.AreEqual(3?? retval)

???Щ?????????????Σ???????????У???ζ??????????????3???????????????е????????????????????????????????ζ?????????????????????????????м????′????????????????????

???????????д?????????????????????????????if switch?????????κε????????????????????????????????д???Щ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????з???bug????????????????С?

??????????????? ???????????????????У????????????????????????ó????п??????????????????????

????????????κ??????????????????У????????????????????????κε??????????????????????????????????????????????κι????????