﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-北国之春-随笔分类-敏捷开发</title><link>http://www.blogjava.net/amigokxz/category/14138.html</link><description>对象的歌唱</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 15:37:08 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 15:37:08 GMT</pubDate><ttl>60</ttl><item><title>面向对象软件开发的敏捷过程(二）</title><link>http://www.blogjava.net/amigokxz/archive/2006/08/15/63726.html</link><dc:creator>amigojava</dc:creator><author>amigojava</author><pubDate>Tue, 15 Aug 2006 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/amigokxz/archive/2006/08/15/63726.html</guid><wfw:comment>http://www.blogjava.net/amigokxz/comments/63726.html</wfw:comment><comments>http://www.blogjava.net/amigokxz/archive/2006/08/15/63726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/amigokxz/comments/commentRss/63726.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/amigokxz/services/trackbacks/63726.html</trackback:ping><description><![CDATA[
		<h2 style="MARGIN: 13pt 0cm">
				<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">测试驱动示例，应用重构优化设计</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面通过一个简单的测试驱动示例，并经过重构完成设计的更改。详细的例子见重构。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">影片出租店的程序，计算每一位顾客的消费金额并打印报表。操作者告诉程序：顾客租用了哪些影片，租期多长，程序根据租赁时间和影片类型（普通片，儿童片和新片）。除了计算费用，还要为常客计算点数，点数的计算会由于租片种类是否为新片而有所不同。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据上述描述，我们画出简单的类图<br /><img src="C:\1.jpg" /><br /></span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其中影片和租借都是简单的纯数据类。<br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">package chapter01;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">public class Movie {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public static final int CHILDRENS=2;//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">影片类型</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public static final int REGULAR=1;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public static final int NEW_RELEASE=0;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private String title;//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">名称</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private int priceCode;//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">价格代码</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public Movie(String title, int priceCode) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.title = title;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.priceCode = priceCode;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public int getPriceCode() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return priceCode;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void setPriceCode(int priceCode) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.priceCode = priceCode;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public String getTitle() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return title;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
								<font face="Times New Roman"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">public class Rental {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private Movie movie;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private int dayRented;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public Rental(Movie movie, int dayRented) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">
								<font face="Times New Roman">              </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.movie = movie;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.dayRented = dayRented;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public int getDayRented() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return dayRented;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public Movie getMovie() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return movie;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">public class Customer {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private String name;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>private Vector rentals=new Vector();</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public Customer(String name) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">
								<font face="Times New Roman">              </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>this.name = name;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public String getName() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return name;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public Vector getRentals() {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return rentals;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>@SuppressWarnings("unchecked")</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void addRental(Rental rental){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>rentals.add(rental);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public String statement(){//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">计算费用</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>double totalAmount=0;//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">总和</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>int frequentCount=0;//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">常客积点</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>Enumeration rental=rentals.elements();</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>String result="rental record for "+getName()+"\n";</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>while (rental.hasMoreElements()) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>Rental each = (Rental) rental.nextElement();//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取得一批租借记录</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>double thisAmount=0;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据类型，计算价格</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>switch (each.getMovie().getPriceCode()) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.REGULAR:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>thisAmount+=2;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>if(each.getDayRented()&gt;2)</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 5">                                   </span>thisAmount+=(each.getDayRented()-2)*1.5;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.CHILDRENS:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>thisAmount+=1.5;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>if(each.getDayRented()&gt;3)</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 5">                                   </span>thisAmount+=(each.getDayRented()-3)*1.5;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.NEW_RELEASE:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>thisAmount+=(each.getDayRented())*3;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">添加常客积点</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>frequentCount++;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>if (each.getMovie().getPriceCode()==Movie.NEW_RELEASE&amp;&amp;each.getDayRented()&gt;1)</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>frequentCount++;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显示此笔数据</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>result+=</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>"\t"+each.getMovie().getTitle()+</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>"\t"+String.valueOf(frequentCount)+"\n";</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 3">
								<font face="Times New Roman">                     </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>totalAmount+=thisAmount;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>//</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打印结尾</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>result+="amount owned "+String.valueOf(totalAmount)+"\n";</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>result+="you earned "+String.valueOf(frequentCount)+"frequentCount\n";</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">
								<font face="Times New Roman">              </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>return result;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面是对应的测试用例</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">public class testCustomerStatement extends TestCase {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Movie childrenMovie=new Movie("HARRY POTTY",Movie.CHILDRENS);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Movie regularMovie=new Movie("Titanic",Movie.REGULAR);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Movie newMovie=new Movie("Ice Age 2",Movie.NEW_RELEASE);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Rental childRental=new Rental(childrenMovie,3);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Rental newRental=new Rental(newMovie,5);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Rental regRental=new Rental(regularMovie,5);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>Customer tom=new Customer("Tom");</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>protected void setUp() throws Exception {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>super.setUp();</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>tom.addRental(childRental);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>tom.addRental(newRental);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>tom.addRental(regRental);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void testCaustomerName(){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>assertEquals("Tom",tom.getName());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">
								<font face="Times New Roman">       </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void testIteratorSize(){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">
								<font face="Times New Roman">              </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>assertEquals(3,tom.getRentals().size());<span style="mso-tab-count: 1">       </span></font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void testIteratorName(){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>Enumeration rentals=tom.getRentals().elements();</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>while (rentals.hasMoreElements()) {</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>Rental each = (Rental) rentals.nextElement();</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>switch(each.getMovie().getPriceCode()){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.CHILDRENS:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>System.out.println("childrens");</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals("HARRY POTTY",each.getMovie().getTitle());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals(3,each.getDayRented());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 4">
								<font face="Times New Roman">                            </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.NEW_RELEASE:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>System.out.println("new");</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals("Ice Age 2",each.getMovie().getTitle());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals(5,each.getDayRented());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>case Movie.REGULAR:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>System.out.println("regular");</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals("Titanic",each.getMovie().getTitle());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>assertEquals(5,each.getDayRented());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 4">                            </span>break;</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 3">                     </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 4">
								<font face="Times New Roman">                            </font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>public void testOutput(){</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 2">              </span>System.out.println(tom.statement());</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">
								<span style="mso-tab-count: 1">       </span>}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman">}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
		</p>
<img src ="http://www.blogjava.net/amigokxz/aggbug/63726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/amigokxz/" target="_blank">amigojava</a> 2006-08-15 17:09 <a href="http://www.blogjava.net/amigokxz/archive/2006/08/15/63726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>