是的,這不是必須的,能夠說是我本身的緣由,不會Java。可是,你也能夠看做是一種重構的場景,不是嗎? java
更改的代碼就再也不放了,比較簡單,與C#和Java的區別有關,留個鏈接 SocialID.cs。但是,個人測試代碼卻很重要。可能不少人會詬病個人測試框架(Machine.Specification)和代碼風格。前者,我想之後會多介紹MSpec和BDD讓你們根熟悉,後者,只能是但願你們適應了。 git
namespace Skight.eLiteWeb.Domain.Specs { public class when_create_social_id_with_proper_input { private Because of = () => subject = new SocialID("43010319801120753"); private It should_get_birth_date_correctly = () => subject.getBirthDate().ShouldEqual(new DateTime(1980, 11, 20)); private static SocialID subject; } }
原來,看似相同的語法Substring,第二個參數卻有不一樣的含義。再經典不過的場景了,測試能夠理順這個過程。 程序員
private String getBirthDayPart() { return this.cardNumber.substring(6, 14); }改成
private String getBirthDayPart() { return this.cardNumber.Substring(6, 8); }
好了,階段性的成果,一個測試/行爲就能夠標示爲一個里程碑,今天就到這裏了,你的支持,讓我明天繼續。 github
哦,少等. 最後一步,確實最重要的一步. 給咱們客戶(這中狀況下,個人客戶是其餘開發人員,是的,高級程序員的客戶就是其餘中級,初級程序員,換一下思想吧)的測試/功能報告,以下: c#