Store address: Address name: Text 2 Productspecification addsale(…) ProductCatalog description: Text Contains Looks-in price: Money 1..*I itemID: ItemID get Specification(.) Houses Describes 6 Sale Register date: Date is Complete: Boolean Sales Lineltem Captures time: Time Contains endsley become Complete .quantity: Integer enterlten(…) makeNew SaleO akelineltem(.) get subtotal makePayment(…) make Payment(.) get Total Logs-completed Payment Paid-by amount: Mor
Test-First Programming 编写代码之前编写单元测试代码 节奏:编写一点测试代码( SaleTest),再 编写一点产品代码(Sale),通过测试后, 再编写一点测试代码
Test-First Programming ⚫ 编写代码之前编写单元测试代码 ⚫ 节奏:编写一点测试代码(SaleTest),再 编写一点产品代码(Sale),通过测试后, 再编写一点测试代码,…
优点 若放到后面写,程序员的天性是不写单元测试代码 心理学上,先编产品代码,再非正式测试,再事后 增加单元测试,则感觉不是很满意。先写测试代码 再编写产品代码并改进之以通过测试,可增加程序 员成就感。 先编写测试代码,可澄清类中的操作确切含义 成百上千的单元测试提供了有意义的验证 增强修改代码时的信心
优点 ⚫ 若放到后面写,程序员的天性是不写单元测试代码 ⚫ 心理学上,先编产品代码,再非正式测试,再事后 增加单元测试,则感觉不是很满意。先写测试代码, 再编写产品代码并改进之以通过测试,可增加程序 员成就感。 ⚫ 先编写测试代码,可澄清类中的操作确切含义 ⚫ 成百上千的单元测试提供了有意义的验证 ⚫ 增强修改代码时的信心
实现模型 MAPPING DESIGNS TO CODE Testing Refactoring 9 Component Diagram e Deployment Diagram
实现模型 MAPPING DESIGNS TO CODE Testing & Refactoring Component Diagram Deployment Diagram
Testing Refactoring P Accepted best practices in OO o Write unit tests prior to coding o Refactor code continuously
Testing & Refactoring Accepted best practices in OO ⚫ Write unit tests prior to coding ⚫ Refactor code continuously